Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / RegexWorker.cs / 2 / RegexWorker.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * Base class for browser capabilities object: just a read-only dictionary * holder that supports Init() * * */ using System.Web.UI; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.Globalization; using System.Security.Permissions; using System.Text; using System.Text.RegularExpressions; using System.Web.RegularExpressions; using System.Web.Util; namespace System.Web.Configuration { // [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class RegexWorker { internal static readonly Regex RefPat = new BrowserCapsRefRegex(); private Hashtable _groups; private HttpBrowserCapabilities _browserCaps; public RegexWorker(HttpBrowserCapabilities browserCaps) { _browserCaps = browserCaps; } private string Lookup(string from) { MatchCollection matches = RefPat.Matches(from); // shortcut for no reference case if (matches.Count == 0) { return from; } StringBuilder sb = new StringBuilder(); int startIndex = 0; foreach (Match match in matches) { int length = match.Index - startIndex; sb.Append(from.Substring(startIndex, length)); startIndex = match.Index + match.Length; string groupName = match.Groups["name"].Value; string result = null; if (_groups != null) { result = (String)_groups[groupName]; } if (result == null) { result = _browserCaps[groupName]; } sb.Append(result); } sb.Append(from, startIndex, from.Length - startIndex); string output = sb.ToString(); // Return null instead of empty string since empty string is used to override values. if (output.Length == 0) { return null; } return output; } public string this[string key] { get { return Lookup(key); } } public bool ProcessRegex(string target, string regexExpression) { if(target == null) { target = String.Empty; } Regex regex = new Regex(regexExpression, RegexOptions.ExplicitCapture); Match match = regex.Match(target); if(match.Success == false) { return false; } string[] groups = regex.GetGroupNames(); if (groups.Length > 0) { if (_groups == null) { _groups = new Hashtable(); } for (int i = 0; i < groups.Length; i++) { _groups[groups[i]] = match.Groups[i].Value; } } return true; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SamlAssertion.cs
- TreeNodeCollectionEditor.cs
- EditorResources.cs
- OptimisticConcurrencyException.cs
- BitmapFrameEncode.cs
- HiddenField.cs
- CommandEventArgs.cs
- WorkflowMarkupSerializationException.cs
- RelationshipConverter.cs
- MarginCollapsingState.cs
- EventLevel.cs
- Camera.cs
- MulticastNotSupportedException.cs
- XmlUrlResolver.cs
- RTLAwareMessageBox.cs
- CodePageUtils.cs
- TrackingProfile.cs
- GeneralTransform2DTo3D.cs
- SafeCloseHandleCritical.cs
- KeyedCollection.cs
- ConfigurationPropertyCollection.cs
- DataGridViewColumnStateChangedEventArgs.cs
- WebPartTransformerAttribute.cs
- XmlDataSource.cs
- AutoScrollExpandMessageFilter.cs
- DataTableClearEvent.cs
- SettingsProviderCollection.cs
- RenderData.cs
- ConfigXmlAttribute.cs
- PenThreadWorker.cs
- PathSegment.cs
- XmlKeywords.cs
- SelectionService.cs
- LineVisual.cs
- NameSpaceExtractor.cs
- DirectoryObjectSecurity.cs
- cache.cs
- SqlUserDefinedTypeAttribute.cs
- Command.cs
- ByeOperationAsyncResult.cs
- BroadcastEventHelper.cs
- Viewport3DAutomationPeer.cs
- HtmlMeta.cs
- PrinterResolution.cs
- MemoryMappedView.cs
- DataTableReader.cs
- XmlSchemaImport.cs
- RunInstallerAttribute.cs
- EdmSchemaAttribute.cs
- ParserContext.cs
- TreeChangeInfo.cs
- WsatServiceCertificate.cs
- RtType.cs
- TypeConstant.cs
- IntSecurity.cs
- WebRequestModulesSection.cs
- UserControl.cs
- DbDataReader.cs
- SeverityFilter.cs
- RelationshipEnd.cs
- TypeGeneratedEventArgs.cs
- UniqueEventHelper.cs
- NativeMethods.cs
- RuleSettingsCollection.cs
- SpecialFolderEnumConverter.cs
- Win32PrintDialog.cs
- RecipientInfo.cs
- EUCJPEncoding.cs
- SharedStatics.cs
- FixedFlowMap.cs
- SqlHelper.cs
- KernelTypeValidation.cs
- TableAdapterManagerNameHandler.cs
- MsmqInputChannelListenerBase.cs
- MessagingDescriptionAttribute.cs
- BackgroundWorker.cs
- XPathSelectionIterator.cs
- ToolStripItemClickedEventArgs.cs
- TextPointer.cs
- WebPart.cs
- EntityReference.cs
- CodeThrowExceptionStatement.cs
- PerformanceCounterLib.cs
- CngKeyBlobFormat.cs
- ToolStripManager.cs
- WinFormsSecurity.cs
- TypeBuilderInstantiation.cs
- MenuCommandService.cs
- SettingsProviderCollection.cs
- RangeExpression.cs
- ApplicationSecurityManager.cs
- StandardCommands.cs
- HtmlDocument.cs
- BypassElementCollection.cs
- DotAtomReader.cs
- LocatorGroup.cs
- StyleTypedPropertyAttribute.cs
- ServiceContractDetailViewControl.cs
- UnionCodeGroup.cs
- DesignerActionItem.cs