Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / Configuration / RegexWorker.cs / 1 / 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; } } } // 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 { // [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; } } } // 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
- DropDownHolder.cs
- ArgumentsParser.cs
- TemplateBindingExpressionConverter.cs
- BaseDataBoundControl.cs
- DataRecordInternal.cs
- XNameTypeConverter.cs
- UnicodeEncoding.cs
- httpserverutility.cs
- LongValidatorAttribute.cs
- HttpGetClientProtocol.cs
- MatchingStyle.cs
- GZipStream.cs
- EntityStoreSchemaFilterEntry.cs
- Content.cs
- HtmlTable.cs
- DatePickerTextBox.cs
- ControlType.cs
- Collection.cs
- Canvas.cs
- DataGridView.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- FileChangesMonitor.cs
- DataSvcMapFileSerializer.cs
- SourceFileInfo.cs
- QueryStringParameter.cs
- RuleInfoComparer.cs
- ContentFileHelper.cs
- ObjectStateFormatter.cs
- OperationFormatter.cs
- XmlSchemaProviderAttribute.cs
- Debug.cs
- SafeIUnknown.cs
- AttachmentCollection.cs
- CqlLexerHelpers.cs
- XPathScanner.cs
- TextDecorationCollection.cs
- CustomAttributeFormatException.cs
- SystemIPGlobalProperties.cs
- VirtualizedItemProviderWrapper.cs
- Interlocked.cs
- GrammarBuilder.cs
- SchemaNames.cs
- AsyncResult.cs
- CompModSwitches.cs
- URLMembershipCondition.cs
- PrimitiveXmlSerializers.cs
- Constants.cs
- EdmProperty.cs
- ErrorTableItemStyle.cs
- QueryCacheKey.cs
- KeyGesture.cs
- GacUtil.cs
- KeyTime.cs
- ProjectionPruner.cs
- StrokeFIndices.cs
- XamlPoint3DCollectionSerializer.cs
- DefaultBindingPropertyAttribute.cs
- DocumentViewerConstants.cs
- CheckedPointers.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- GAC.cs
- CodeConditionStatement.cs
- XmlSchemaInclude.cs
- ColorMatrix.cs
- XmlReturnWriter.cs
- VerificationException.cs
- XmlReaderSettings.cs
- FigureParagraph.cs
- SelectingProviderEventArgs.cs
- SystemIcmpV6Statistics.cs
- Group.cs
- ResXResourceSet.cs
- CodeCatchClauseCollection.cs
- ExceptionHelpers.cs
- TextBoxRenderer.cs
- KeyGestureConverter.cs
- XmlCDATASection.cs
- AddInActivator.cs
- AudioDeviceOut.cs
- DynamicFilterExpression.cs
- MetadataArtifactLoaderResource.cs
- IgnoreFlushAndCloseStream.cs
- DesignerVerb.cs
- NativeObjectSecurity.cs
- SpotLight.cs
- MenuAutomationPeer.cs
- Margins.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- SqlBuilder.cs
- ServiceOperation.cs
- Stylesheet.cs
- GeometryDrawing.cs
- ControlEvent.cs
- IntSecurity.cs
- EditorBrowsableAttribute.cs
- FragmentNavigationEventArgs.cs
- SingleTagSectionHandler.cs
- DateTimeSerializationSection.cs
- DefaultAssemblyResolver.cs
- ComplexLine.cs