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
- ValueProviderWrapper.cs
- TraversalRequest.cs
- TimeSpanParse.cs
- TableLayoutRowStyleCollection.cs
- SubqueryRules.cs
- RectangleGeometry.cs
- SimpleBitVector32.cs
- MethodBuilderInstantiation.cs
- FakeModelPropertyImpl.cs
- DataGridViewCell.cs
- ISessionStateStore.cs
- CollectionChangedEventManager.cs
- SettingsSavedEventArgs.cs
- MimeBasePart.cs
- _NestedSingleAsyncResult.cs
- WorkflowControlEndpoint.cs
- TableAdapterManagerNameHandler.cs
- EntityDesignerDataSourceView.cs
- Win32.cs
- Soap12ServerProtocol.cs
- FontUnitConverter.cs
- ToolStripStatusLabel.cs
- Validator.cs
- FactoryMaker.cs
- SafeLibraryHandle.cs
- XmlSchemaCollection.cs
- MemberMemberBinding.cs
- ToolStripKeyboardHandlingService.cs
- KernelTypeValidation.cs
- FixedPageProcessor.cs
- NumericExpr.cs
- FrameworkContentElement.cs
- BinaryCommonClasses.cs
- indexingfiltermarshaler.cs
- IIS7UserPrincipal.cs
- FormViewInsertEventArgs.cs
- ProfilePropertyNameValidator.cs
- RadialGradientBrush.cs
- WorkItem.cs
- Point.cs
- WpfKnownMemberInvoker.cs
- ControlCachePolicy.cs
- controlskin.cs
- PageAction.cs
- SweepDirectionValidation.cs
- ListView.cs
- PackWebRequest.cs
- AnnotationComponentChooser.cs
- ToolStripArrowRenderEventArgs.cs
- _OSSOCK.cs
- OletxDependentTransaction.cs
- FontSourceCollection.cs
- LoginCancelEventArgs.cs
- EventMappingSettings.cs
- RegistryConfigurationProvider.cs
- FormViewPagerRow.cs
- ArrayList.cs
- PrincipalPermission.cs
- Size.cs
- AmbientLight.cs
- SliderAutomationPeer.cs
- HtmlValidationSummaryAdapter.cs
- VScrollProperties.cs
- XmlElement.cs
- OracleConnection.cs
- CrossAppDomainChannel.cs
- SetterBase.cs
- ContentElement.cs
- AbsoluteQuery.cs
- DBAsyncResult.cs
- BufferedGraphicsManager.cs
- SafeSecurityHandles.cs
- ColorMatrix.cs
- PrintDialogException.cs
- RtfControls.cs
- DataGridHelper.cs
- ReadOnlyTernaryTree.cs
- IndexedGlyphRun.cs
- RegexTree.cs
- ArgumentOutOfRangeException.cs
- BoundField.cs
- NativeCompoundFileAPIs.cs
- InkCanvas.cs
- LayoutTable.cs
- ObjectComplexPropertyMapping.cs
- DataGridViewColumnCollection.cs
- LateBoundBitmapDecoder.cs
- ListenerElementsCollection.cs
- VariableQuery.cs
- EntityWithKeyStrategy.cs
- ListViewItemEventArgs.cs
- WebPartAuthorizationEventArgs.cs
- SqlSupersetValidator.cs
- FormParameter.cs
- InputScope.cs
- Row.cs
- EncryptedPackage.cs
- SmtpClient.cs
- XmlIlTypeHelper.cs
- Math.cs