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
- UiaCoreProviderApi.cs
- XmlWriterSettings.cs
- TraceContextRecord.cs
- WebEventCodes.cs
- Filter.cs
- TextCharacters.cs
- EntityDataSourceState.cs
- WebBrowserDesigner.cs
- AsyncStreamReader.cs
- IssuedSecurityTokenParameters.cs
- Int32Storage.cs
- BackgroundFormatInfo.cs
- HttpResponse.cs
- SmtpDigestAuthenticationModule.cs
- FamilyTypeface.cs
- PrintingPermission.cs
- AbandonedMutexException.cs
- FullTextLine.cs
- ISessionStateStore.cs
- StateRuntime.cs
- IndexerHelper.cs
- ComponentResourceManager.cs
- FlagsAttribute.cs
- Variable.cs
- EnlistmentState.cs
- ExtendedTransformFactory.cs
- CounterSetInstance.cs
- SettingsProviderCollection.cs
- ProcessModelInfo.cs
- XmlQueryTypeFactory.cs
- x509utils.cs
- SignatureHelper.cs
- QuestionEventArgs.cs
- MetadataItemCollectionFactory.cs
- TreeNodeBindingCollection.cs
- SetterBaseCollection.cs
- SoapSchemaExporter.cs
- SessionPageStateSection.cs
- ModifierKeysValueSerializer.cs
- TagPrefixCollection.cs
- DataGridColumnHeader.cs
- unsafeIndexingFilterStream.cs
- ReadOnlyDictionary.cs
- FileSystemWatcher.cs
- LinkConverter.cs
- CodeArgumentReferenceExpression.cs
- BitmapEffect.cs
- TextFormatter.cs
- unsafenativemethodsother.cs
- DataSourceView.cs
- TypeBrowser.xaml.cs
- CallContext.cs
- XmlCDATASection.cs
- IntellisenseTextBox.designer.cs
- TagPrefixInfo.cs
- XPathQilFactory.cs
- CorePropertiesFilter.cs
- XmlCharCheckingReader.cs
- HebrewNumber.cs
- Dynamic.cs
- ArraySubsetEnumerator.cs
- XmlCustomFormatter.cs
- ResourceDescriptionAttribute.cs
- CustomError.cs
- SqlConnectionStringBuilder.cs
- ReaderContextStackData.cs
- XPathNodeIterator.cs
- WindowsListViewScroll.cs
- InputProviderSite.cs
- BindingMAnagerBase.cs
- FlowDocumentView.cs
- TimersDescriptionAttribute.cs
- COM2PictureConverter.cs
- EntityDataSource.cs
- ContractMapping.cs
- GeneralTransform3DGroup.cs
- Hyperlink.cs
- FilteredReadOnlyMetadataCollection.cs
- tooltip.cs
- WindowsFormsSectionHandler.cs
- EncodingTable.cs
- RawStylusSystemGestureInputReport.cs
- BehaviorEditorPart.cs
- ContainerVisual.cs
- PrinterUnitConvert.cs
- GPRECT.cs
- ChannelManager.cs
- CounterSetInstanceCounterDataSet.cs
- CopyNodeSetAction.cs
- OpenCollectionAsyncResult.cs
- BufferedMessageData.cs
- ExtentCqlBlock.cs
- sqlmetadatafactory.cs
- SqlDependencyUtils.cs
- XmlReaderDelegator.cs
- EmptyControlCollection.cs
- Clock.cs
- ProbeMatches11.cs
- EntityKeyElement.cs
- BufferedReadStream.cs