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
- StringValueSerializer.cs
- ComplexLine.cs
- DecoderExceptionFallback.cs
- CodeTryCatchFinallyStatement.cs
- SimpleExpression.cs
- SrgsItemList.cs
- OleDbCommand.cs
- XmlAttributeCache.cs
- TimeSpanSecondsConverter.cs
- XmlHierarchicalDataSourceView.cs
- ContainerTracking.cs
- Delegate.cs
- XmlDocumentFragment.cs
- MimeBasePart.cs
- StringArrayConverter.cs
- HttpHandlerActionCollection.cs
- UpdateProgress.cs
- HttpDictionary.cs
- EnumMemberAttribute.cs
- SafeBitVector32.cs
- OleDbMetaDataFactory.cs
- X509Certificate.cs
- RecognizeCompletedEventArgs.cs
- AgileSafeNativeMemoryHandle.cs
- GeometryGroup.cs
- safesecurityhelperavalon.cs
- ReadOnlyCollectionBase.cs
- _SSPIWrapper.cs
- PrincipalPermission.cs
- BookmarkScopeHandle.cs
- WindowHideOrCloseTracker.cs
- Expressions.cs
- RegexRunner.cs
- LinqDataSourceDisposeEventArgs.cs
- ComponentEvent.cs
- PackWebRequest.cs
- login.cs
- Window.cs
- StringArrayConverter.cs
- PageRequestManager.cs
- TouchPoint.cs
- PopOutPanel.cs
- UnhandledExceptionEventArgs.cs
- LinqDataView.cs
- WindowsHyperlink.cs
- ContractHandle.cs
- ConfigurationStrings.cs
- ComboBoxRenderer.cs
- xmlsaver.cs
- ExpressionEditorAttribute.cs
- GeometryModel3D.cs
- TransformerTypeCollection.cs
- GroupBox.cs
- HostExecutionContextManager.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- NativeMethodsOther.cs
- IERequestCache.cs
- Visitors.cs
- SecurityToken.cs
- IDQuery.cs
- CultureSpecificStringDictionary.cs
- ControlsConfig.cs
- OracleRowUpdatingEventArgs.cs
- ISSmlParser.cs
- Frame.cs
- HwndSource.cs
- ContainerControl.cs
- ToolStripPanelDesigner.cs
- ClientRoleProvider.cs
- BitmapEffectInput.cs
- FileLevelControlBuilderAttribute.cs
- streamingZipPartStream.cs
- DbMetaDataCollectionNames.cs
- LiteralControl.cs
- ReadWriteControlDesigner.cs
- AuthenticationModulesSection.cs
- PromptEventArgs.cs
- ByteStreamGeometryContext.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- EntityDataSourceStatementEditor.cs
- FixedTextSelectionProcessor.cs
- ToolConsole.cs
- ExpressionParser.cs
- OleDbReferenceCollection.cs
- PartialTrustHelpers.cs
- ScrollItemProviderWrapper.cs
- ProfileSettingsCollection.cs
- DocumentPage.cs
- Screen.cs
- WebPartMovingEventArgs.cs
- MSAANativeProvider.cs
- HttpHandlerAction.cs
- ResourceDescriptionAttribute.cs
- CopyOfAction.cs
- ListSurrogate.cs
- NodeInfo.cs
- DbConnectionPoolOptions.cs
- SafeArrayTypeMismatchException.cs
- XmlSchemaResource.cs
- MouseCaptureWithinProperty.cs