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
- InlinedLocationReference.cs
- ScrollEventArgs.cs
- __ConsoleStream.cs
- CryptoProvider.cs
- ToolStripMenuItem.cs
- ReservationCollection.cs
- ThreadAbortException.cs
- XmlParserContext.cs
- DataKeyArray.cs
- EntityCollection.cs
- SqlException.cs
- GlyphShapingProperties.cs
- FormatStringEditor.cs
- Grid.cs
- Win32MouseDevice.cs
- Label.cs
- GenericParameterDataContract.cs
- UnknownBitmapEncoder.cs
- DataContractSerializerElement.cs
- Converter.cs
- CellCreator.cs
- WebConfigurationHost.cs
- TableLayoutCellPaintEventArgs.cs
- UiaCoreProviderApi.cs
- XmlCDATASection.cs
- Regex.cs
- Internal.cs
- _OverlappedAsyncResult.cs
- ArraySegment.cs
- DrawingImage.cs
- TextCompositionManager.cs
- HMACSHA1.cs
- NodeFunctions.cs
- ComponentDispatcher.cs
- PerfCounters.cs
- DbConvert.cs
- CollectionBase.cs
- MethodCallConverter.cs
- EventProxy.cs
- TextDpi.cs
- XmlSchemaObject.cs
- TextContainerHelper.cs
- DataGridComponentEditor.cs
- XDRSchema.cs
- TokenFactoryBase.cs
- WebUtil.cs
- ApplicationDirectory.cs
- SolidColorBrush.cs
- ResourceDictionary.cs
- LinearGradientBrush.cs
- ErasingStroke.cs
- IntSecurity.cs
- TickBar.cs
- ListBindingConverter.cs
- ZipIOLocalFileBlock.cs
- CellIdBoolean.cs
- PrinterSettings.cs
- CodeMethodReturnStatement.cs
- PaintEvent.cs
- TypedTableBase.cs
- HttpApplication.cs
- DoubleMinMaxAggregationOperator.cs
- EntityDataSourceViewSchema.cs
- GroupStyle.cs
- StylusButtonEventArgs.cs
- ContainerFilterService.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- SourceSwitch.cs
- SortedDictionary.cs
- OrderPreservingMergeHelper.cs
- MemberRelationshipService.cs
- BindingContext.cs
- InitializationEventAttribute.cs
- BindableTemplateBuilder.cs
- AttributeCollection.cs
- XmlCharType.cs
- MimeObjectFactory.cs
- Delegate.cs
- ListItemCollection.cs
- StaticExtension.cs
- Journaling.cs
- TextPenaltyModule.cs
- ByteStreamMessageEncoderFactory.cs
- IsolatedStorageFile.cs
- PartialList.cs
- InfiniteIntConverter.cs
- StackSpiller.Bindings.cs
- XPathSelectionIterator.cs
- MetadataUtil.cs
- QueryStatement.cs
- Site.cs
- Group.cs
- CollectionChangedEventManager.cs
- _NegoStream.cs
- ImpersonateTokenRef.cs
- SeparatorAutomationPeer.cs
- PropertyReferenceSerializer.cs
- FormViewInsertEventArgs.cs
- MemberAccessException.cs
- EventsTab.cs