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
- ButtonRenderer.cs
- XmlTextWriter.cs
- CodeVariableReferenceExpression.cs
- CodeNamespaceImportCollection.cs
- TextEditorCharacters.cs
- ClientRuntimeConfig.cs
- UrlPath.cs
- NullableLongAverageAggregationOperator.cs
- DataGridRow.cs
- Canvas.cs
- SqlBuilder.cs
- CfgSemanticTag.cs
- PrintDialogException.cs
- TextMarkerSource.cs
- ObsoleteAttribute.cs
- ContextDataSourceView.cs
- TabControlToolboxItem.cs
- ADRole.cs
- ColumnTypeConverter.cs
- UriSectionData.cs
- CultureSpecificStringDictionary.cs
- DataGridViewCheckBoxColumn.cs
- Message.cs
- EventListener.cs
- Object.cs
- CommonDialog.cs
- XmlSchemaInferenceException.cs
- ReachUIElementCollectionSerializerAsync.cs
- PackWebRequest.cs
- IncrementalReadDecoders.cs
- PropagatorResult.cs
- ResourceSet.cs
- FixedDocumentPaginator.cs
- ReflectEventDescriptor.cs
- TextCompositionEventArgs.cs
- MediaPlayer.cs
- FileLoadException.cs
- ADConnectionHelper.cs
- _NetworkingPerfCounters.cs
- ObjectViewEntityCollectionData.cs
- TemplatedMailWebEventProvider.cs
- NamespaceDecl.cs
- DataGridCell.cs
- RequiredAttributeAttribute.cs
- CurrentChangedEventManager.cs
- ExpressionVisitor.cs
- MiniAssembly.cs
- GlobalizationAssembly.cs
- HwndKeyboardInputProvider.cs
- ArraySubsetEnumerator.cs
- PagerSettings.cs
- GradientStop.cs
- TableRow.cs
- ExpressionWriter.cs
- MethodBody.cs
- DataGridColumnsPage.cs
- DataSourceGroupCollection.cs
- EntityDataSourceWrapperCollection.cs
- NameNode.cs
- IdentityNotMappedException.cs
- WebBrowserNavigatedEventHandler.cs
- AnnotationComponentChooser.cs
- SiteMapSection.cs
- ProjectionNode.cs
- MetadataArtifactLoaderFile.cs
- ImageConverter.cs
- TdsParser.cs
- ToolbarAUtomationPeer.cs
- Unit.cs
- ToolTipAutomationPeer.cs
- WebServiceMethodData.cs
- ToolStripManager.cs
- EqualityComparer.cs
- MSG.cs
- TextEditorDragDrop.cs
- UriExt.cs
- DetailsViewInsertEventArgs.cs
- XsdValidatingReader.cs
- DiscoveryMessageSequenceGenerator.cs
- PropertyPathWorker.cs
- Point3DCollection.cs
- EmptyControlCollection.cs
- FormsAuthenticationConfiguration.cs
- BaseTransportHeaders.cs
- DescendantBaseQuery.cs
- BaseTemplateParser.cs
- WebConfigurationFileMap.cs
- CalendarAutoFormatDialog.cs
- XmlSerializationWriter.cs
- Console.cs
- CodeTypeParameterCollection.cs
- HMACSHA256.cs
- AssemblyBuilder.cs
- ApplicationCommands.cs
- AppSettingsExpressionEditor.cs
- Matrix.cs
- ServerValidateEventArgs.cs
- Registry.cs
- Size3D.cs
- Font.cs