Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- DrawListViewItemEventArgs.cs
- HashHelper.cs
- FileUtil.cs
- mediaclock.cs
- StringFunctions.cs
- WindowsRichEditRange.cs
- ResourcesGenerator.cs
- Vector3DIndependentAnimationStorage.cs
- SqlExpressionNullability.cs
- MultipartIdentifier.cs
- EventHandlersStore.cs
- DependencyPropertyValueSerializer.cs
- PaginationProgressEventArgs.cs
- Terminate.cs
- XmlElementList.cs
- SamlNameIdentifierClaimResource.cs
- CompositeScriptReferenceEventArgs.cs
- wgx_exports.cs
- Mouse.cs
- WindowsStatic.cs
- BinHexDecoder.cs
- ColorContextHelper.cs
- PngBitmapEncoder.cs
- DetailsViewDeletedEventArgs.cs
- TransformProviderWrapper.cs
- DependencyPropertyChangedEventArgs.cs
- TextTreeRootTextBlock.cs
- FrameworkEventSource.cs
- TraceInternal.cs
- ReferenceSchema.cs
- RelationshipEnd.cs
- CultureInfoConverter.cs
- ViewStateModeByIdAttribute.cs
- LayoutTableCell.cs
- SafeCryptContextHandle.cs
- Funcletizer.cs
- AjaxFrameworkAssemblyAttribute.cs
- COM2TypeInfoProcessor.cs
- ScrollViewerAutomationPeer.cs
- GACMembershipCondition.cs
- CssClassPropertyAttribute.cs
- Security.cs
- AspProxy.cs
- ByteStorage.cs
- ConfigurationSectionGroupCollection.cs
- StrongName.cs
- COM2ExtendedBrowsingHandler.cs
- GuidelineSet.cs
- ArrayWithOffset.cs
- SortableBindingList.cs
- DataGridTextBoxColumn.cs
- HyperLinkField.cs
- DockPattern.cs
- HtmlTableRow.cs
- RowCache.cs
- ProviderBase.cs
- BamlWriter.cs
- GridViewRowEventArgs.cs
- TextContainerChangedEventArgs.cs
- HttpServerUtilityWrapper.cs
- OdbcInfoMessageEvent.cs
- Style.cs
- StandardTransformFactory.cs
- StylusLogic.cs
- FixedDocument.cs
- EdmValidator.cs
- JulianCalendar.cs
- AxHost.cs
- QueryOutputWriter.cs
- LiteralControl.cs
- RegexWriter.cs
- DelegatingHeader.cs
- TemplateXamlTreeBuilder.cs
- WmlImageAdapter.cs
- CodeTypeReferenceSerializer.cs
- ObjectQuery_EntitySqlExtensions.cs
- _NegoState.cs
- DbDataReader.cs
- DataServiceQueryProvider.cs
- CodeTypeParameterCollection.cs
- DoubleLink.cs
- CallbackDebugElement.cs
- MimeReturn.cs
- SubtreeProcessor.cs
- ClientSettings.cs
- BaseEntityWrapper.cs
- MethodImplAttribute.cs
- prompt.cs
- AssemblySettingAttributes.cs
- CssTextWriter.cs
- ToolStripSeparator.cs
- GridViewSortEventArgs.cs
- ProxyElement.cs
- KnownTypeAttribute.cs
- RectIndependentAnimationStorage.cs
- ClientTargetSection.cs
- COAUTHINFO.cs
- JsonEncodingStreamWrapper.cs
- DisableDpiAwarenessAttribute.cs
- XmlAttributes.cs