Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- NameValueFileSectionHandler.cs
- CqlQuery.cs
- XamlGridLengthSerializer.cs
- NullableBoolConverter.cs
- DesignTimeData.cs
- QueryExpression.cs
- TriggerCollection.cs
- XmlQueryContext.cs
- CodeDOMUtility.cs
- RSAOAEPKeyExchangeDeformatter.cs
- BezierSegment.cs
- EntityDataSourceEntitySetNameItem.cs
- MulticastDelegate.cs
- CookieProtection.cs
- CodeLinePragma.cs
- ListViewEditEventArgs.cs
- DynamicQueryableWrapper.cs
- AnnotationResourceCollection.cs
- GeneralTransformGroup.cs
- WsatExtendedInformation.cs
- BooleanSwitch.cs
- Span.cs
- CompositeControl.cs
- MarshalByRefObject.cs
- XmlDictionaryReaderQuotas.cs
- CellQuery.cs
- InputProcessorProfiles.cs
- StringUtil.cs
- XamlStream.cs
- NameValueFileSectionHandler.cs
- FixedPageProcessor.cs
- GeneralTransformGroup.cs
- HandlerBase.cs
- AdornerLayer.cs
- GenericQueueSurrogate.cs
- SrgsRulesCollection.cs
- UidManager.cs
- COM2IDispatchConverter.cs
- SmiEventSink_DeferedProcessing.cs
- ping.cs
- ProfilePropertySettingsCollection.cs
- AccessText.cs
- ConnectionStringsExpressionEditor.cs
- DataControlButton.cs
- DbInsertCommandTree.cs
- ObjectMemberMapping.cs
- TypeNameParser.cs
- EntityParameter.cs
- PaginationProgressEventArgs.cs
- IdentityManager.cs
- DefinitionProperties.cs
- ConnectionsZone.cs
- DataSourceHelper.cs
- ContentWrapperAttribute.cs
- DeploymentSection.cs
- ASCIIEncoding.cs
- AuthenticatedStream.cs
- MediaSystem.cs
- StatusBarItemAutomationPeer.cs
- ApplicationServicesHostFactory.cs
- RedirectionProxy.cs
- XmlExpressionDumper.cs
- DecoderExceptionFallback.cs
- WindowsListBox.cs
- DiagnosticsConfiguration.cs
- RadioButtonPopupAdapter.cs
- errorpatternmatcher.cs
- PartialList.cs
- ProxyAttribute.cs
- DataControlImageButton.cs
- XmlSchemaObjectTable.cs
- DrawingContextDrawingContextWalker.cs
- ResetableIterator.cs
- WindowsIPAddress.cs
- SqlClientMetaDataCollectionNames.cs
- WebUtil.cs
- AgileSafeNativeMemoryHandle.cs
- SevenBitStream.cs
- entitydatasourceentitysetnameconverter.cs
- FlowDocumentPage.cs
- InternalConfirm.cs
- CreateRefExpr.cs
- FileRegion.cs
- AnnotationAdorner.cs
- XmlSchemaCompilationSettings.cs
- RotateTransform.cs
- AddInContractAttribute.cs
- sitestring.cs
- UpdateExpressionVisitor.cs
- XmlTextReader.cs
- WindowsUpDown.cs
- ContextQuery.cs
- QueryGeneratorBase.cs
- DBSchemaRow.cs
- TextEditorLists.cs
- URL.cs
- LinearGradientBrush.cs
- SchemaDeclBase.cs
- FileLogRecord.cs
- ProgressBarHighlightConverter.cs