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
- ScaleTransform.cs
- PermissionSetTriple.cs
- CalendarDay.cs
- BindingSource.cs
- DataGridViewCellValidatingEventArgs.cs
- RelationshipEnd.cs
- CodeThrowExceptionStatement.cs
- EdmItemError.cs
- _LocalDataStoreMgr.cs
- X509Certificate.cs
- ToolStripManager.cs
- CodeNamespaceCollection.cs
- WorkerRequest.cs
- SendDesigner.xaml.cs
- MatchingStyle.cs
- Pair.cs
- StringComparer.cs
- ConnectionPoolManager.cs
- CompletedAsyncResult.cs
- CompiledQueryCacheEntry.cs
- InternalResources.cs
- SecUtil.cs
- NamespaceTable.cs
- propertytag.cs
- FormatConvertedBitmap.cs
- Event.cs
- RSACryptoServiceProvider.cs
- AuthenticatedStream.cs
- ObjectListItemCollection.cs
- BufferModesCollection.cs
- XPathScanner.cs
- UndirectedGraph.cs
- DataTemplate.cs
- ObjectHelper.cs
- EdmType.cs
- BindingCollection.cs
- BinaryObjectInfo.cs
- EndOfStreamException.cs
- MULTI_QI.cs
- XPathItem.cs
- DbProviderFactories.cs
- xdrvalidator.cs
- XamlRtfConverter.cs
- RC2CryptoServiceProvider.cs
- NavigationPropertySingletonExpression.cs
- IApplicationTrustManager.cs
- StorageAssociationSetMapping.cs
- TdsParser.cs
- UIServiceHelper.cs
- Int32.cs
- ObjectDataSource.cs
- _LocalDataStore.cs
- AutoGeneratedFieldProperties.cs
- OleDbStruct.cs
- SrgsToken.cs
- DesignerProperties.cs
- IconBitmapDecoder.cs
- ChangePassword.cs
- DeflateEmulationStream.cs
- FormViewUpdateEventArgs.cs
- EntitySet.cs
- DeviceFilterEditorDialog.cs
- SystemGatewayIPAddressInformation.cs
- BitSet.cs
- FixUpCollection.cs
- NGCPageContentCollectionSerializerAsync.cs
- DecoderExceptionFallback.cs
- nulltextcontainer.cs
- RowUpdatedEventArgs.cs
- NamespaceQuery.cs
- XMLUtil.cs
- PermissionToken.cs
- XamlPoint3DCollectionSerializer.cs
- SqlStatistics.cs
- BlockUIContainer.cs
- SecureUICommand.cs
- ResumeStoryboard.cs
- ValidatingPropertiesEventArgs.cs
- SiteMapNodeCollection.cs
- AQNBuilder.cs
- xdrvalidator.cs
- HotSpot.cs
- CompositeCollection.cs
- AggregateException.cs
- MembershipValidatePasswordEventArgs.cs
- ObjectStateFormatter.cs
- RequestQueryProcessor.cs
- ResourceBinder.cs
- EdmSchemaAttribute.cs
- DataContractSerializerServiceBehavior.cs
- ScrollableControl.cs
- ReadOnlyActivityGlyph.cs
- ListViewInsertEventArgs.cs
- MimePart.cs
- RelatedPropertyManager.cs
- TextDecorations.cs
- EditingCoordinator.cs
- NamedPermissionSet.cs
- IteratorFilter.cs
- ArgumentNullException.cs