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
- ScalarOps.cs
- _NegoState.cs
- EdmMember.cs
- ConnectionStringsSection.cs
- connectionpool.cs
- TransportContext.cs
- DataGridViewCellParsingEventArgs.cs
- FilterElement.cs
- ColorTransformHelper.cs
- DetailsViewInsertEventArgs.cs
- CreateUserWizardStep.cs
- ToolstripProfessionalRenderer.cs
- ClientRoleProvider.cs
- ElementFactory.cs
- XMLDiffLoader.cs
- UserControl.cs
- RoutedEventArgs.cs
- InvalidPrinterException.cs
- Ref.cs
- ProjectedSlot.cs
- XmlSchemaException.cs
- XmlRawWriterWrapper.cs
- RandomDelaySendsAsyncResult.cs
- RegexReplacement.cs
- XmlUtilWriter.cs
- ReverseInheritProperty.cs
- CodeGeneratorOptions.cs
- HttpCookieCollection.cs
- WSSecureConversation.cs
- CoreSwitches.cs
- EdmComplexPropertyAttribute.cs
- FixedDocumentPaginator.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- DataListItemEventArgs.cs
- GroupBoxAutomationPeer.cs
- Transform3DCollection.cs
- CommandHelpers.cs
- OracleException.cs
- DebuggerAttributes.cs
- AdapterUtil.cs
- TaskFileService.cs
- FormViewModeEventArgs.cs
- JsonReader.cs
- MatrixAnimationBase.cs
- DataControlFieldCell.cs
- pingexception.cs
- VisualBrush.cs
- XmlSchemaCompilationSettings.cs
- InvalidOleVariantTypeException.cs
- RTLAwareMessageBox.cs
- HScrollProperties.cs
- ConcurrencyMode.cs
- CodeDirectoryCompiler.cs
- CommonObjectSecurity.cs
- StorageEndPropertyMapping.cs
- UIElement3D.cs
- PersonalizableAttribute.cs
- StylusEditingBehavior.cs
- EUCJPEncoding.cs
- SecurityContext.cs
- TypeConverterHelper.cs
- ChoiceConverter.cs
- TextServicesHost.cs
- LassoHelper.cs
- ElementProxy.cs
- EntityWrapper.cs
- CatalogPart.cs
- ClientApiGenerator.cs
- XmlEnumAttribute.cs
- StringCollectionEditor.cs
- DataGridColumn.cs
- ErrorsHelper.cs
- SystemException.cs
- TableLayoutPanel.cs
- BitmapCacheBrush.cs
- NullEntityWrapper.cs
- Icon.cs
- InfoCardCryptoHelper.cs
- SqlVersion.cs
- LazyTextWriterCreator.cs
- UnsafePeerToPeerMethods.cs
- TransformerInfo.cs
- BrushMappingModeValidation.cs
- CheckBoxPopupAdapter.cs
- Pair.cs
- Set.cs
- XmlSchemaSimpleTypeRestriction.cs
- Evidence.cs
- _ChunkParse.cs
- behaviorssection.cs
- SaveFileDialogDesigner.cs
- ObjectCloneHelper.cs
- UriSection.cs
- WebPartsSection.cs
- PermissionToken.cs
- ObjectDataSourceDesigner.cs
- updateconfighost.cs
- HtmlHistory.cs
- PackUriHelper.cs
- StrongNameHelpers.cs