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
- ThemeableAttribute.cs
- DataPagerFieldCollection.cs
- JsonEncodingStreamWrapper.cs
- GridView.cs
- CompensatableSequenceActivity.cs
- ReliabilityContractAttribute.cs
- ObjectAnimationUsingKeyFrames.cs
- SqlDependencyListener.cs
- SHA1.cs
- WorkflowDesigner.cs
- AssociatedControlConverter.cs
- ProviderCollection.cs
- KeyValueInternalCollection.cs
- ProxyFragment.cs
- ImageAutomationPeer.cs
- IMembershipProvider.cs
- DrawItemEvent.cs
- OleDbRowUpdatingEvent.cs
- HistoryEventArgs.cs
- SizeConverter.cs
- ExtensibleClassFactory.cs
- UIElementParagraph.cs
- xmlglyphRunInfo.cs
- ReadOnlyPermissionSet.cs
- ApplicationServicesHostFactory.cs
- localization.cs
- Ticks.cs
- SourceFileBuildProvider.cs
- TextRangeAdaptor.cs
- XmlIlGenerator.cs
- KeyValuePairs.cs
- StringExpressionSet.cs
- CustomValidator.cs
- IntPtr.cs
- PackWebRequestFactory.cs
- CompositeScriptReference.cs
- PrintEvent.cs
- DocumentGrid.cs
- IDQuery.cs
- RegularExpressionValidator.cs
- SecurityUtils.cs
- _SslState.cs
- EndPoint.cs
- METAHEADER.cs
- TableLayoutStyleCollection.cs
- ExpressionValueEditor.cs
- Bidi.cs
- AsymmetricKeyExchangeDeformatter.cs
- AppSettingsSection.cs
- EncryptedType.cs
- ZipIOLocalFileHeader.cs
- FrugalList.cs
- FindProgressChangedEventArgs.cs
- Process.cs
- isolationinterop.cs
- EntitySetBase.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- Cursors.cs
- QfeChecker.cs
- TransactionManager.cs
- Bidi.cs
- Frame.cs
- MouseEventArgs.cs
- VirtualPathUtility.cs
- Compiler.cs
- CommentGlyph.cs
- XmlDataLoader.cs
- TypeConvertions.cs
- ImageClickEventArgs.cs
- DataGridCell.cs
- SettingsPropertyCollection.cs
- PolicyLevel.cs
- SqlErrorCollection.cs
- CompilationUnit.cs
- DecoderBestFitFallback.cs
- EdmRelationshipRoleAttribute.cs
- HMACRIPEMD160.cs
- Tablet.cs
- querybuilder.cs
- XmlTypeAttribute.cs
- Int64Converter.cs
- MetadataArtifactLoaderCompositeFile.cs
- PolyQuadraticBezierSegment.cs
- Message.cs
- FixedTextContainer.cs
- UpdatableGenericsFeature.cs
- FontEmbeddingManager.cs
- MemberProjectionIndex.cs
- CompModSwitches.cs
- PageThemeParser.cs
- UIElementIsland.cs
- SqlConnectionHelper.cs
- BinaryNode.cs
- TextDecorationUnitValidation.cs
- ObjectItemCollection.cs
- UnsafePeerToPeerMethods.cs
- DbProviderFactories.cs
- DWriteFactory.cs
- ContentPlaceHolderDesigner.cs
- ISSmlParser.cs