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
- SamlDoNotCacheCondition.cs
- ComponentRenameEvent.cs
- XPathMultyIterator.cs
- PDBReader.cs
- UnknownBitmapEncoder.cs
- ParameterBuilder.cs
- ListContractAdapter.cs
- HighlightComponent.cs
- XmlSchemaAny.cs
- Camera.cs
- XmlSchemas.cs
- Int16.cs
- XmlAnyElementAttribute.cs
- DataControlButton.cs
- SrgsNameValueTag.cs
- DataServiceHostFactory.cs
- DataGridViewCellFormattingEventArgs.cs
- SecureStringHasher.cs
- WmpBitmapEncoder.cs
- InheritanceContextChangedEventManager.cs
- ObjectIDGenerator.cs
- BindingExpression.cs
- UserPersonalizationStateInfo.cs
- XmlILModule.cs
- Quaternion.cs
- Wrapper.cs
- XmlWrappingWriter.cs
- UpdateTranslator.cs
- EraserBehavior.cs
- MatrixTransform3D.cs
- TimeoutHelper.cs
- CompositeCollectionView.cs
- FtpRequestCacheValidator.cs
- DecoderExceptionFallback.cs
- DataObjectSettingDataEventArgs.cs
- SapiRecognizer.cs
- Vector3D.cs
- MessageSecurityVersion.cs
- StrokeFIndices.cs
- UrlMapping.cs
- ToolStripOverflow.cs
- IdlingCommunicationPool.cs
- Keywords.cs
- TypeForwardedToAttribute.cs
- COAUTHINFO.cs
- KnownTypeHelper.cs
- TimerEventSubscriptionCollection.cs
- LoopExpression.cs
- ComNativeDescriptor.cs
- XPathCompiler.cs
- Stroke.cs
- Size.cs
- AnnotationResourceChangedEventArgs.cs
- XmlJsonWriter.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- ScrollChangedEventArgs.cs
- InvokeHandlers.cs
- BaseTransportHeaders.cs
- DataGridItemEventArgs.cs
- CodeDirectoryCompiler.cs
- OutputCacheSettings.cs
- SiteMapPath.cs
- PersonalizableTypeEntry.cs
- FolderLevelBuildProviderCollection.cs
- EditorPartChrome.cs
- EnterpriseServicesHelper.cs
- WebEventCodes.cs
- InternalControlCollection.cs
- HttpCapabilitiesBase.cs
- SplitterCancelEvent.cs
- TextBoxBase.cs
- SoapObjectWriter.cs
- Size3DConverter.cs
- ValidationError.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- RuleSetReference.cs
- MethodImplAttribute.cs
- JulianCalendar.cs
- UrlMappingsModule.cs
- ExtensionQuery.cs
- URLAttribute.cs
- OdbcDataAdapter.cs
- DataGridViewElement.cs
- PageWrapper.cs
- ConfigurationManagerHelperFactory.cs
- TypeDefinition.cs
- ApplicationProxyInternal.cs
- path.cs
- ResourceReferenceKeyNotFoundException.cs
- XAMLParseException.cs
- RegexGroupCollection.cs
- PointLightBase.cs
- SendMailErrorEventArgs.cs
- AtomServiceDocumentSerializer.cs
- ObjectDataSourceDisposingEventArgs.cs
- MinimizableAttributeTypeConverter.cs
- ScriptingAuthenticationServiceSection.cs
- Int32Animation.cs
- _LocalDataStoreMgr.cs
- CaretElement.cs