Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- recordstatescratchpad.cs
- DataControlLinkButton.cs
- RouteParser.cs
- ColorConvertedBitmapExtension.cs
- AmbiguousMatchException.cs
- SqlFlattener.cs
- AssemblyAssociatedContentFileAttribute.cs
- Vector3DCollection.cs
- CompressedStack.cs
- MessageDecoder.cs
- rsa.cs
- FillErrorEventArgs.cs
- Style.cs
- NativeRecognizer.cs
- DesignerPerfEventProvider.cs
- Size.cs
- ResetableIterator.cs
- ContentElement.cs
- ValueCollectionParameterReader.cs
- PartBasedPackageProperties.cs
- OleAutBinder.cs
- RegistrationServices.cs
- ZoneButton.cs
- ButtonField.cs
- ListDictionaryInternal.cs
- Soap.cs
- OracleRowUpdatedEventArgs.cs
- SiteMapProvider.cs
- _ScatterGatherBuffers.cs
- RequestCacheEntry.cs
- EntityKey.cs
- DependencySource.cs
- IPGlobalProperties.cs
- LayeredChannelFactory.cs
- Logging.cs
- SemaphoreFullException.cs
- NativeMethods.cs
- CancellationHandler.cs
- GB18030Encoding.cs
- CommentAction.cs
- FlowDocumentReader.cs
- UTF8Encoding.cs
- QueueProcessor.cs
- StringSource.cs
- MetadataArtifactLoaderFile.cs
- PrintPageEvent.cs
- DesignerTransactionCloseEvent.cs
- cookiecontainer.cs
- SudsCommon.cs
- DesignConnection.cs
- AVElementHelper.cs
- TabControlCancelEvent.cs
- IPEndPoint.cs
- MasterPageCodeDomTreeGenerator.cs
- Point3DAnimationBase.cs
- Update.cs
- SQLInt64Storage.cs
- RepeaterItemEventArgs.cs
- Automation.cs
- ExtendedProtectionPolicy.cs
- FillRuleValidation.cs
- FixedNode.cs
- connectionpool.cs
- ToolStripScrollButton.cs
- HostUtils.cs
- Convert.cs
- RowVisual.cs
- PathParser.cs
- PropertyStore.cs
- HtmlControl.cs
- HttpStreamMessageEncoderFactory.cs
- PropertyMappingExceptionEventArgs.cs
- OdbcTransaction.cs
- SortQuery.cs
- StatusBar.cs
- AccessDataSource.cs
- DynamicActionMessageFilter.cs
- MessagePropertyAttribute.cs
- CodeSnippetCompileUnit.cs
- PolyBezierSegment.cs
- sqlstateclientmanager.cs
- FixedPage.cs
- TextEditorTyping.cs
- XPathNavigatorKeyComparer.cs
- activationcontext.cs
- CreatingCookieEventArgs.cs
- ValidationError.cs
- RemoteWebConfigurationHostStream.cs
- XhtmlTextWriter.cs
- ReservationCollection.cs
- MergeFilterQuery.cs
- DesignerSerializerAttribute.cs
- xmlglyphRunInfo.cs
- KeyGestureConverter.cs
- ObfuscationAttribute.cs
- PageCatalogPart.cs
- DesignerValidatorAdapter.cs
- ParagraphVisual.cs
- ConditionValidator.cs
- CodeTypeReferenceCollection.cs