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
- FatalException.cs
- ExpandSegmentCollection.cs
- BinaryObjectInfo.cs
- PageHandlerFactory.cs
- WebPartEditorApplyVerb.cs
- WebPartTransformer.cs
- TreeNodeCollection.cs
- DataGridTextBox.cs
- _OSSOCK.cs
- RelationshipManager.cs
- TextSchema.cs
- SqlDataSourceCommandEventArgs.cs
- SqlHelper.cs
- TextEndOfParagraph.cs
- Select.cs
- QilIterator.cs
- TypeValidationEventArgs.cs
- MouseEvent.cs
- DataControlButton.cs
- RootAction.cs
- Timer.cs
- DigitShape.cs
- ExpressionBuilder.cs
- UserControlParser.cs
- HGlobalSafeHandle.cs
- TcpServerChannel.cs
- ThemeInfoAttribute.cs
- DbConnectionPool.cs
- TextProperties.cs
- DebuggerAttributes.cs
- DBSchemaTable.cs
- EntityClientCacheKey.cs
- DesignTimeParseData.cs
- HttpCachePolicy.cs
- TreeBuilderBamlTranslator.cs
- ExpressionNode.cs
- BrushValueSerializer.cs
- AssemblyFilter.cs
- CodeObjectCreateExpression.cs
- NativeMethods.cs
- OrthographicCamera.cs
- DataStreamFromComStream.cs
- ObjectContextServiceProvider.cs
- CustomSignedXml.cs
- WebBaseEventKeyComparer.cs
- PenContext.cs
- CalendarDay.cs
- XmlSerializerFactory.cs
- ConfigurationLocation.cs
- MetadataException.cs
- SimpleRecyclingCache.cs
- CompiledQuery.cs
- ReadOnlyNameValueCollection.cs
- OleDbWrapper.cs
- ReliabilityContractAttribute.cs
- EntityParameter.cs
- PreProcessInputEventArgs.cs
- CloudCollection.cs
- Int64Converter.cs
- CellPartitioner.cs
- GeometryGroup.cs
- AsyncOperation.cs
- OrderPreservingSpoolingTask.cs
- QuestionEventArgs.cs
- _OSSOCK.cs
- ParallelTimeline.cs
- ExceptionList.cs
- KeyGestureValueSerializer.cs
- DataGridViewHeaderCell.cs
- SecureStringHasher.cs
- HtmlEmptyTagControlBuilder.cs
- Control.cs
- RawStylusInput.cs
- MaskedTextBoxDesigner.cs
- AttributeCollection.cs
- ClientSettingsStore.cs
- ObjectSecurity.cs
- ReturnValue.cs
- ClientUIRequest.cs
- SelectingProviderEventArgs.cs
- WebEventTraceProvider.cs
- CatalogZone.cs
- ThumbButtonInfoCollection.cs
- CharacterMetricsDictionary.cs
- StateDesigner.LayoutSelectionGlyph.cs
- WebConfigurationHostFileChange.cs
- WebHttpSecurity.cs
- DebugController.cs
- DataGridViewElement.cs
- DropShadowBitmapEffect.cs
- ConditionalAttribute.cs
- StartFileNameEditor.cs
- DirectionalLight.cs
- XmlSchemaObject.cs
- LocationSectionRecord.cs
- ResourceCategoryAttribute.cs
- WindowsRebar.cs
- AsyncContentLoadedEventArgs.cs
- MetadataProperty.cs
- Funcletizer.cs