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
- TraceSection.cs
- DataListItemEventArgs.cs
- DesignerTextViewAdapter.cs
- ExpressionPrefixAttribute.cs
- AssociationSetEnd.cs
- ObjectSecurityT.cs
- XmlChildEnumerator.cs
- DetailsViewUpdatedEventArgs.cs
- CodeIterationStatement.cs
- RightsManagementPermission.cs
- HiddenField.cs
- Section.cs
- AsymmetricSecurityProtocolFactory.cs
- KeyNotFoundException.cs
- TimeSpan.cs
- ScriptResourceHandler.cs
- MailDefinition.cs
- SoapBinding.cs
- EntityDataSourceState.cs
- WindowsAuthenticationModule.cs
- IteratorDescriptor.cs
- PageBuildProvider.cs
- TCPClient.cs
- ServiceInstanceProvider.cs
- DocumentReferenceCollection.cs
- Timer.cs
- DataTemplate.cs
- NamedObject.cs
- GroupBoxDesigner.cs
- CheckBoxPopupAdapter.cs
- Collection.cs
- DataServiceRequestOfT.cs
- KeyGestureValueSerializer.cs
- Publisher.cs
- safesecurityhelperavalon.cs
- CompiledXpathExpr.cs
- ExceptionHelpers.cs
- PkcsMisc.cs
- StoreAnnotationsMap.cs
- MergeLocalizationDirectives.cs
- RawStylusInputReport.cs
- LinqDataSourceValidationException.cs
- DataTemplateSelector.cs
- ParameterBinding.cs
- TypeConverter.cs
- BulletedListEventArgs.cs
- AutomationPatternInfo.cs
- GeometryDrawing.cs
- WebServiceClientProxyGenerator.cs
- Substitution.cs
- ComponentResourceKey.cs
- WebPartConnectionsConnectVerb.cs
- ResourcesGenerator.cs
- RuntimeConfigLKG.cs
- XD.cs
- EventData.cs
- MemberDescriptor.cs
- EntityReference.cs
- ToolStripRenderEventArgs.cs
- DrawingGroup.cs
- SpAudioStreamWrapper.cs
- TypedLocationWrapper.cs
- DoubleSumAggregationOperator.cs
- JsonReader.cs
- ToolStripManager.cs
- AsmxEndpointPickerExtension.cs
- AndCondition.cs
- DataKey.cs
- AutoScrollHelper.cs
- HtmlTextArea.cs
- SystemIPInterfaceProperties.cs
- MailAddressCollection.cs
- AppDomainUnloadedException.cs
- InputEventArgs.cs
- PocoPropertyAccessorStrategy.cs
- ImplicitInputBrush.cs
- CollectionContainer.cs
- TextDecorationCollectionConverter.cs
- DictionaryBase.cs
- PlanCompiler.cs
- Function.cs
- DBParameter.cs
- SignatureResourcePool.cs
- ChangeNode.cs
- X509Utils.cs
- IssuedTokenServiceElement.cs
- HttpCookie.cs
- InputLanguage.cs
- Point3DConverter.cs
- Size3D.cs
- ReverseInheritProperty.cs
- CatalogPartChrome.cs
- CustomErrorCollection.cs
- SmtpMail.cs
- EventMemberCodeDomSerializer.cs
- ListViewTableRow.cs
- RSAOAEPKeyExchangeFormatter.cs
- UriTemplateDispatchFormatter.cs
- ThreadPool.cs
- ProfileGroupSettingsCollection.cs