Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / RegexWorker.cs / 1305376 / 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 { // 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OdbcInfoMessageEvent.cs
- BaseTemplateCodeDomTreeGenerator.cs
- WhiteSpaceTrimStringConverter.cs
- RelatedCurrencyManager.cs
- ProtocolElementCollection.cs
- StringValueConverter.cs
- ProcessInfo.cs
- LinqDataSourceEditData.cs
- CancelRequestedQuery.cs
- InputLanguageCollection.cs
- StringExpressionSet.cs
- RowsCopiedEventArgs.cs
- BitmapEffect.cs
- EmbeddedMailObject.cs
- TableCell.cs
- _HTTPDateParse.cs
- DBSqlParser.cs
- SqlConnectionHelper.cs
- QuarticEase.cs
- DateRangeEvent.cs
- TabletDevice.cs
- ServiceParser.cs
- ResourceType.cs
- SqlRetyper.cs
- TextServicesManager.cs
- CaretElement.cs
- EventMappingSettings.cs
- DesignerExtenders.cs
- PackageDigitalSignatureManager.cs
- ReferencedCategoriesDocument.cs
- ListSortDescription.cs
- Context.cs
- XmlSchemaValidationException.cs
- TreeBuilderBamlTranslator.cs
- DataError.cs
- WmfPlaceableFileHeader.cs
- CalendarAutomationPeer.cs
- WindowsProgressbar.cs
- MessagePartSpecification.cs
- ConnectionManagementElement.cs
- SyndicationLink.cs
- ConnectionOrientedTransportElement.cs
- StreamFormatter.cs
- InstanceDescriptor.cs
- WebPageTraceListener.cs
- ToolStripItemRenderEventArgs.cs
- CallTemplateAction.cs
- XPathParser.cs
- ClassHandlersStore.cs
- ImageListImage.cs
- SafeNativeMethodsCLR.cs
- Point3D.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- Identifier.cs
- TypeConverterHelper.cs
- ExpressionBuilderContext.cs
- ScrollBarAutomationPeer.cs
- MaskInputRejectedEventArgs.cs
- DataBoundControlAdapter.cs
- XmlHierarchyData.cs
- RawStylusActions.cs
- SendSecurityHeader.cs
- GeometryCollection.cs
- BookmarkWorkItem.cs
- XmlWhitespace.cs
- AssociationType.cs
- PropertyKey.cs
- ResourcesChangeInfo.cs
- NetworkAddressChange.cs
- InputProcessorProfilesLoader.cs
- ThemeDictionaryExtension.cs
- WorkflowServiceBuildProvider.cs
- DataGridDesigner.cs
- TypeBuilderInstantiation.cs
- DataGridColumnCollection.cs
- Pair.cs
- JsonMessageEncoderFactory.cs
- HttpRequestWrapper.cs
- ColorAnimation.cs
- KnownTypesHelper.cs
- SkewTransform.cs
- DbParameterHelper.cs
- EmbeddedMailObjectsCollection.cs
- TextServicesProperty.cs
- FormParameter.cs
- NestPullup.cs
- ContentValidator.cs
- RenderOptions.cs
- IDispatchConstantAttribute.cs
- SecurityDescriptor.cs
- ToRequest.cs
- ResolveResponse.cs
- NativeMethods.cs
- PropertyDescriptor.cs
- XmlSchemaSimpleType.cs
- ScrollableControl.cs
- Comparer.cs
- PassportIdentity.cs
- FontResourceCache.cs
- Timeline.cs