Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / RegexWorker.cs / 1305376 / 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 { // 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
- SqlCommandBuilder.cs
- DataGridToolTip.cs
- FileDetails.cs
- ReflectionServiceProvider.cs
- TabPanel.cs
- SystemNetworkInterface.cs
- StrokeCollectionConverter.cs
- VirtualizingPanel.cs
- SerializerWriterEventHandlers.cs
- BaseComponentEditor.cs
- SystemThemeKey.cs
- DataViewSettingCollection.cs
- Label.cs
- TaskSchedulerException.cs
- ServicePointManager.cs
- BamlLocalizer.cs
- ExtendedPropertiesHandler.cs
- DelegatingTypeDescriptionProvider.cs
- SequenceDesigner.cs
- XsltException.cs
- UpDownBase.cs
- ObservableDictionary.cs
- DrawingContextDrawingContextWalker.cs
- ListBoxDesigner.cs
- Win32MouseDevice.cs
- SqlInternalConnection.cs
- PeerUnsafeNativeMethods.cs
- ClockGroup.cs
- Scanner.cs
- RectangleF.cs
- ZoneIdentityPermission.cs
- XmlSchemaSet.cs
- SAPIEngineTypes.cs
- ProgressChangedEventArgs.cs
- SectionRecord.cs
- VirtualPathUtility.cs
- ClassData.cs
- HttpCookie.cs
- TextServicesContext.cs
- TypeLibConverter.cs
- CodeSnippetExpression.cs
- SettingsAttributeDictionary.cs
- XmlnsDefinitionAttribute.cs
- LocalBuilder.cs
- PerformanceCounterPermissionEntry.cs
- ToolStripMenuItem.cs
- SettingsBase.cs
- DataColumnPropertyDescriptor.cs
- HitTestParameters3D.cs
- PropertyMap.cs
- Int32RectValueSerializer.cs
- SqlIdentifier.cs
- VScrollProperties.cs
- FileSystemEnumerable.cs
- EntityProviderServices.cs
- HttpListenerResponse.cs
- StrongTypingException.cs
- HostVisual.cs
- SecureUICommand.cs
- RulePatternOps.cs
- sqlmetadatafactory.cs
- URLAttribute.cs
- ConnectionPoolManager.cs
- LeaseManager.cs
- ExpressionBuilder.cs
- ResourceCategoryAttribute.cs
- TextProperties.cs
- BinaryCommonClasses.cs
- AdornerPresentationContext.cs
- MessagingActivityHelper.cs
- SortableBindingList.cs
- SmiSettersStream.cs
- TextServicesContext.cs
- PersonalizationStateInfo.cs
- ImageSource.cs
- BamlBinaryReader.cs
- WinFormsSpinner.cs
- _KerberosClient.cs
- FlowDocument.cs
- DPCustomTypeDescriptor.cs
- PassportPrincipal.cs
- DrawTreeNodeEventArgs.cs
- CollectionViewGroupRoot.cs
- PtsPage.cs
- BitmapEffectrendercontext.cs
- sqlser.cs
- DbXmlEnabledProviderManifest.cs
- Brush.cs
- UnsafeNativeMethods.cs
- DataSourceBooleanViewSchemaConverter.cs
- Label.cs
- NavigationService.cs
- XmlTypeAttribute.cs
- Misc.cs
- HostingEnvironment.cs
- XmlCharType.cs
- LZCodec.cs
- ServiceBusyException.cs
- DesignerDataParameter.cs
- ToolStripDropDownItem.cs