Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / RegexWorker.cs / 2 / 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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GridItemPatternIdentifiers.cs
- SqlGenericUtil.cs
- AsyncResult.cs
- CommandLibraryHelper.cs
- SpanIndex.cs
- SizeConverter.cs
- GradientStop.cs
- XmlEnumAttribute.cs
- PathGeometry.cs
- Point4DValueSerializer.cs
- Boolean.cs
- MouseDevice.cs
- CompModSwitches.cs
- InvalidOleVariantTypeException.cs
- ConnectionStringsExpressionBuilder.cs
- StateManagedCollection.cs
- ScriptServiceAttribute.cs
- Listen.cs
- processwaithandle.cs
- ScriptMethodAttribute.cs
- QuaternionKeyFrameCollection.cs
- RegexStringValidatorAttribute.cs
- ProcessExitedException.cs
- OraclePermissionAttribute.cs
- XmlBaseReader.cs
- MultiPageTextView.cs
- RequestResizeEvent.cs
- BuilderPropertyEntry.cs
- SectionUpdates.cs
- BoundsDrawingContextWalker.cs
- HttpApplicationStateBase.cs
- JoinElimination.cs
- Pen.cs
- RegexFCD.cs
- XmlElementAttributes.cs
- Image.cs
- processwaithandle.cs
- StringResourceManager.cs
- IisTraceWebEventProvider.cs
- QuaternionKeyFrameCollection.cs
- httpstaticobjectscollection.cs
- DataGridViewIntLinkedList.cs
- TabOrder.cs
- GridSplitter.cs
- DataExpression.cs
- PropertyMapper.cs
- FormsAuthenticationModule.cs
- FocusWithinProperty.cs
- DataGridCellInfo.cs
- AssemblyResourceLoader.cs
- WorkflowFileItem.cs
- FormViewInsertEventArgs.cs
- SparseMemoryStream.cs
- ProviderUtil.cs
- Bezier.cs
- SchemaElementDecl.cs
- TraceListener.cs
- CharacterMetrics.cs
- PopupRootAutomationPeer.cs
- WebPartConnectionCollection.cs
- TextBoxBase.cs
- EntityUtil.cs
- CacheSection.cs
- SurrogateEncoder.cs
- DataBoundControl.cs
- EntityProviderFactory.cs
- QuaternionAnimation.cs
- ErrorFormatterPage.cs
- TdsParserStateObject.cs
- DesignerProperties.cs
- Content.cs
- ScrollEvent.cs
- RemoteWebConfigurationHostStream.cs
- SHA512Managed.cs
- ActiveDesignSurfaceEvent.cs
- ExecutionEngineException.cs
- DNS.cs
- SqlCommandBuilder.cs
- Utils.cs
- XmlSerializerVersionAttribute.cs
- XamlTypeMapper.cs
- Schema.cs
- OperatorExpressions.cs
- XmlSchemaExporter.cs
- ResourceDictionary.cs
- CaseStatement.cs
- WorkflowValidationFailedException.cs
- VisualBrush.cs
- DataGridViewTextBoxEditingControl.cs
- SrgsGrammarCompiler.cs
- TextSelectionProcessor.cs
- NetworkStream.cs
- SortFieldComparer.cs
- EntityViewContainer.cs
- OpenTypeLayout.cs
- sqlcontext.cs
- _Rfc2616CacheValidators.cs
- SignatureToken.cs
- OleDbErrorCollection.cs
- ProviderMetadata.cs