Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- MatrixValueSerializer.cs
- TextRangeBase.cs
- CodePageUtils.cs
- TextEditorDragDrop.cs
- TemplateNameScope.cs
- XmlChoiceIdentifierAttribute.cs
- PathData.cs
- PropertyAccessVisitor.cs
- ClientSession.cs
- SchemaElement.cs
- DefaultMemberAttribute.cs
- ExpressionDumper.cs
- Stylesheet.cs
- DictionarySurrogate.cs
- ValueUnavailableException.cs
- DetailsViewInsertedEventArgs.cs
- Nodes.cs
- GraphicsContext.cs
- WmlSelectionListAdapter.cs
- ExtentCqlBlock.cs
- GeneralTransform3D.cs
- XMLUtil.cs
- ListView.cs
- HttpResponseHeader.cs
- OleDbInfoMessageEvent.cs
- XmlSchemaAll.cs
- EncodingInfo.cs
- HebrewNumber.cs
- InheritanceContextChangedEventManager.cs
- ImageField.cs
- ClientConfigurationSystem.cs
- DependencyObjectPropertyDescriptor.cs
- ExceptionHelpers.cs
- SecurityTokenTypes.cs
- ExtractorMetadata.cs
- TiffBitmapEncoder.cs
- ScrollBar.cs
- BitmapFrameEncode.cs
- BaseWebProxyFinder.cs
- EntityTypeEmitter.cs
- DataViewSetting.cs
- AccessDataSource.cs
- CookieParameter.cs
- XmlIlGenerator.cs
- TabControlEvent.cs
- TextRange.cs
- AccessViolationException.cs
- ClientData.cs
- TableLayoutSettings.cs
- CodePageUtils.cs
- UniqueConstraint.cs
- PersonalizationProviderHelper.cs
- PropertyEntry.cs
- ErrorWebPart.cs
- TextDecorationCollectionConverter.cs
- SectionXmlInfo.cs
- InfoCardCryptoHelper.cs
- DocumentAutomationPeer.cs
- SocketInformation.cs
- TimeZone.cs
- PointValueSerializer.cs
- SqlCachedBuffer.cs
- RegistryPermission.cs
- PolicyUtility.cs
- DataGridState.cs
- MenuDesigner.cs
- WebPartConnectionsCancelEventArgs.cs
- ObjectParameter.cs
- RangeBaseAutomationPeer.cs
- BamlBinaryReader.cs
- SplineQuaternionKeyFrame.cs
- OrderingInfo.cs
- SQLSingle.cs
- ManagedCodeMarkers.cs
- HeaderedContentControl.cs
- EllipseGeometry.cs
- XamlReader.cs
- TypeUtil.cs
- DataGridViewTopLeftHeaderCell.cs
- InputDevice.cs
- SafePipeHandle.cs
- DoubleKeyFrameCollection.cs
- FirstQueryOperator.cs
- Atom10ItemFormatter.cs
- TemplateComponentConnector.cs
- CreateUserWizard.cs
- DynamicRendererThreadManager.cs
- PasswordPropertyTextAttribute.cs
- TextEditorTyping.cs
- DocobjHost.cs
- Rotation3DAnimationUsingKeyFrames.cs
- TextServicesHost.cs
- SQLDateTime.cs
- XmlStreamNodeWriter.cs
- ExpressionBinding.cs
- InputScopeAttribute.cs
- SlotInfo.cs
- ProfileSettingsCollection.cs
- TileBrush.cs
- PartManifestEntry.cs