Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- DataGridViewTextBoxColumn.cs
- _TLSstream.cs
- UriTemplateMatch.cs
- RemotingConfiguration.cs
- Monitor.cs
- FormParameter.cs
- FormViewModeEventArgs.cs
- XmlFormatExtensionAttribute.cs
- UserControl.cs
- BitmapFrameEncode.cs
- ExclusiveTcpListener.cs
- BindingGroup.cs
- Timeline.cs
- keycontainerpermission.cs
- SchemaConstraints.cs
- CheckBoxBaseAdapter.cs
- EdmProperty.cs
- SerialErrors.cs
- BaseInfoTable.cs
- Decoder.cs
- BaseAppDomainProtocolHandler.cs
- tabpagecollectioneditor.cs
- SoapSchemaImporter.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- ProcessMessagesAsyncResult.cs
- Condition.cs
- ConfigurationPropertyCollection.cs
- SelectionRangeConverter.cs
- WindowsBrush.cs
- HitTestFilterBehavior.cs
- Nullable.cs
- SettingsBindableAttribute.cs
- SchemaConstraints.cs
- WsiProfilesElementCollection.cs
- SqlParameterCollection.cs
- DesignerCategoryAttribute.cs
- ZipFileInfoCollection.cs
- Guid.cs
- PathBox.cs
- ADMembershipProvider.cs
- PrimarySelectionGlyph.cs
- AggregationMinMaxHelpers.cs
- bidPrivateBase.cs
- CollectionConverter.cs
- BodyGlyph.cs
- XmlSchemaAnnotation.cs
- EntityException.cs
- PlaceHolder.cs
- CultureInfoConverter.cs
- SAPIEngineTypes.cs
- ToolStripSplitStackLayout.cs
- DiscreteKeyFrames.cs
- PageTheme.cs
- TextTreeTextNode.cs
- ClientOptions.cs
- SubtreeProcessor.cs
- ObjectHelper.cs
- CategoryNameCollection.cs
- GroupItem.cs
- hebrewshape.cs
- XXXOnTypeBuilderInstantiation.cs
- EncryptedType.cs
- ObjectDataSourceMethodEventArgs.cs
- SmiContextFactory.cs
- DeploymentExceptionMapper.cs
- MessageQueueConverter.cs
- TogglePatternIdentifiers.cs
- TrackingWorkflowEventArgs.cs
- UICuesEvent.cs
- UiaCoreProviderApi.cs
- AuthenticationServiceManager.cs
- GraphicsContainer.cs
- AutoGeneratedFieldProperties.cs
- InvokeBase.cs
- Fonts.cs
- ProfileSettingsCollection.cs
- Util.cs
- StylusSystemGestureEventArgs.cs
- ETagAttribute.cs
- OdbcConnectionFactory.cs
- XmlUtil.cs
- StringSorter.cs
- XmlSchemaAttribute.cs
- ActivatableWorkflowsQueryResult.cs
- NavigationPropertyEmitter.cs
- ArgumentValueSerializer.cs
- DataSourceControlBuilder.cs
- ConstraintConverter.cs
- DataSourceXmlTextReader.cs
- sqlser.cs
- PEFileReader.cs
- DependencyPropertyChangedEventArgs.cs
- CharUnicodeInfo.cs
- EventManager.cs
- CreationContext.cs
- MobileFormsAuthentication.cs
- TextServicesDisplayAttribute.cs
- OneOf.cs
- WebPartManager.cs
- Button.cs