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
- TryExpression.cs
- ExpressionBuilder.cs
- InvalidPrinterException.cs
- SafeNativeMethodsMilCoreApi.cs
- SystemColors.cs
- AnimationLayer.cs
- Brush.cs
- TemplateControlBuildProvider.cs
- Color.cs
- SHA1.cs
- MailWebEventProvider.cs
- DataColumnSelectionConverter.cs
- XmlAutoDetectWriter.cs
- XAMLParseException.cs
- NetPipeSectionData.cs
- NumericPagerField.cs
- ScopedKnownTypes.cs
- ListMarkerSourceInfo.cs
- ModelVisual3D.cs
- RecognizerStateChangedEventArgs.cs
- NavigatorOutput.cs
- WinCategoryAttribute.cs
- ObservableDictionary.cs
- CompilerResults.cs
- CharacterMetricsDictionary.cs
- WebServiceErrorEvent.cs
- MultiAsyncResult.cs
- PickDesigner.xaml.cs
- ConfigurationManager.cs
- EventListenerClientSide.cs
- PathGradientBrush.cs
- HandleRef.cs
- DataGridTextBox.cs
- SerializationAttributes.cs
- MenuItem.cs
- Calendar.cs
- PageThemeParser.cs
- ScrollEvent.cs
- InternalCache.cs
- CompilationSection.cs
- FamilyMap.cs
- ConnectionInterfaceCollection.cs
- EdmItemError.cs
- SessionEndingEventArgs.cs
- FigureParagraph.cs
- StringReader.cs
- WebPartMenuStyle.cs
- SpecialTypeDataContract.cs
- XdrBuilder.cs
- ProfileManager.cs
- Vector3dCollection.cs
- QueryTask.cs
- ReadOnlyTernaryTree.cs
- InternalPermissions.cs
- MobileCategoryAttribute.cs
- BrowsableAttribute.cs
- MethodExpr.cs
- WebSysDefaultValueAttribute.cs
- JsonReader.cs
- MetadataSerializer.cs
- XhtmlBasicLiteralTextAdapter.cs
- GcHandle.cs
- XmlArrayAttribute.cs
- CompositeScriptReferenceEventArgs.cs
- ColorContext.cs
- CodeLinePragma.cs
- GroupItemAutomationPeer.cs
- DependencyPropertyHelper.cs
- SerializationFieldInfo.cs
- FlagsAttribute.cs
- FrameworkContextData.cs
- ObjectViewQueryResultData.cs
- HtmlLiteralTextAdapter.cs
- Encoder.cs
- StorageAssociationTypeMapping.cs
- DiffuseMaterial.cs
- WeakReference.cs
- ContainsSearchOperator.cs
- DescriptionAttribute.cs
- DbParameterCollectionHelper.cs
- BindingSource.cs
- ShaderRenderModeValidation.cs
- MonitorWrapper.cs
- OperatorExpressions.cs
- LinqDataSourceUpdateEventArgs.cs
- IdleTimeoutMonitor.cs
- WasAdminWrapper.cs
- CompositeCollectionView.cs
- ProcessHostFactoryHelper.cs
- PtsPage.cs
- Accessible.cs
- ObjectParameter.cs
- RemotingException.cs
- JoinElimination.cs
- Ticks.cs
- EmptyReadOnlyDictionaryInternal.cs
- FlowDocumentFormatter.cs
- GroupQuery.cs
- RequestBringIntoViewEventArgs.cs
- ListViewGroupItemCollection.cs