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
- Directory.cs
- _ConnectStream.cs
- ReadOnlyKeyedCollection.cs
- VisualBrush.cs
- ScriptHandlerFactory.cs
- ACL.cs
- XmlChildNodes.cs
- WebPartTransformerCollection.cs
- IDataContractSurrogate.cs
- UDPClient.cs
- Connector.cs
- TextBoxBase.cs
- SmtpDigestAuthenticationModule.cs
- TypedRowHandler.cs
- LinqDataSourceDisposeEventArgs.cs
- SerializationSectionGroup.cs
- SmiConnection.cs
- SqlDataAdapter.cs
- ProtocolReflector.cs
- TypeConverterHelper.cs
- ContextMenuStrip.cs
- DrawingContext.cs
- UnsafeNativeMethods.cs
- UIElementCollection.cs
- EntityCollectionChangedParams.cs
- ReadWriteSpinLock.cs
- InstanceDataCollection.cs
- Selection.cs
- DesignerHierarchicalDataSourceView.cs
- ExtendedPropertyDescriptor.cs
- Marshal.cs
- InternalsVisibleToAttribute.cs
- HtmlForm.cs
- SQLBytesStorage.cs
- MarkupCompilePass2.cs
- ImageListUtils.cs
- XamlFilter.cs
- ConstructorBuilder.cs
- SqlWebEventProvider.cs
- DbConnectionPoolOptions.cs
- BuildManager.cs
- ApplicationDirectory.cs
- CreateUserWizard.cs
- XmlNodeChangedEventManager.cs
- BindingEditor.xaml.cs
- ChangeNode.cs
- AncillaryOps.cs
- SerializationTrace.cs
- Overlapped.cs
- ping.cs
- SourceElementsCollection.cs
- ClientApiGenerator.cs
- UserInitiatedNavigationPermission.cs
- ProfileInfo.cs
- EditingCommands.cs
- DPTypeDescriptorContext.cs
- XmlNamespaceMappingCollection.cs
- FrameworkRichTextComposition.cs
- LabelInfo.cs
- X509Utils.cs
- TimersDescriptionAttribute.cs
- CodeTryCatchFinallyStatement.cs
- ViewService.cs
- compensatingcollection.cs
- TextServicesCompartment.cs
- ControlCachePolicy.cs
- XmlSchemaAll.cs
- WorkflowApplicationTerminatedException.cs
- VSWCFServiceContractGenerator.cs
- AssociationTypeEmitter.cs
- AppDomainShutdownMonitor.cs
- LinqDataSourceDeleteEventArgs.cs
- DataGridViewComboBoxColumn.cs
- _CacheStreams.cs
- JsonSerializer.cs
- AuthStoreRoleProvider.cs
- CompoundFileDeflateTransform.cs
- OperationPickerDialog.designer.cs
- SchemaLookupTable.cs
- ExpressionEditorAttribute.cs
- Cursor.cs
- odbcmetadatacollectionnames.cs
- XamlFilter.cs
- WindowsAuthenticationModule.cs
- __Filters.cs
- smtpconnection.cs
- NullReferenceException.cs
- Claim.cs
- WSTransactionSection.cs
- StaticFileHandler.cs
- DataGridViewRowCollection.cs
- AdRotator.cs
- BuildProvidersCompiler.cs
- HttpVersion.cs
- EpmHelper.cs
- PlatformNotSupportedException.cs
- MenuBase.cs
- TokenBasedSet.cs
- ConnectionOrientedTransportBindingElement.cs
- XmlReaderDelegator.cs