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
- SystemResourceKey.cs
- QueryReaderSettings.cs
- GridViewActionList.cs
- SQLRoleProvider.cs
- ToolStripLocationCancelEventArgs.cs
- RegisteredArrayDeclaration.cs
- BitmapEffectDrawing.cs
- CompressEmulationStream.cs
- MetadataHelper.cs
- COM2IDispatchConverter.cs
- AdPostCacheSubstitution.cs
- DESCryptoServiceProvider.cs
- SplineKeyFrames.cs
- KeyedPriorityQueue.cs
- ServicePoint.cs
- DockPattern.cs
- DBDataPermissionAttribute.cs
- BufferedGraphics.cs
- RegistrationServices.cs
- ScrollChrome.cs
- SHA256.cs
- ClaimSet.cs
- RelatedImageListAttribute.cs
- CodeIdentifier.cs
- PresentationAppDomainManager.cs
- RoleServiceManager.cs
- BitVector32.cs
- BindableTemplateBuilder.cs
- WindowsTooltip.cs
- XmlUrlResolver.cs
- RuleInfoComparer.cs
- AuthenticationServiceManager.cs
- ServiceNameElement.cs
- ScriptingJsonSerializationSection.cs
- AttributeProviderAttribute.cs
- SchemaElementDecl.cs
- TextDecoration.cs
- RSAPKCS1SignatureDeformatter.cs
- StorageAssociationSetMapping.cs
- SQLGuidStorage.cs
- ViewStateModeByIdAttribute.cs
- Root.cs
- QueryCoreOp.cs
- SqlNotificationRequest.cs
- SecurityPolicySection.cs
- SQLStringStorage.cs
- SettingsPropertyWrongTypeException.cs
- VisualTreeHelper.cs
- ZipIOLocalFileHeader.cs
- CompressionTransform.cs
- PointAnimationUsingKeyFrames.cs
- MexTcpBindingElement.cs
- InvokeWebServiceDesigner.cs
- DeviceContexts.cs
- IdentifierService.cs
- WebPartCatalogCloseVerb.cs
- RegexCompilationInfo.cs
- TextUtf8RawTextWriter.cs
- connectionpool.cs
- UITypeEditors.cs
- Bitmap.cs
- InvokePattern.cs
- SQLSingle.cs
- TemplateEditingFrame.cs
- APCustomTypeDescriptor.cs
- TreeIterators.cs
- PriorityQueue.cs
- invalidudtexception.cs
- PieceNameHelper.cs
- HttpProfileBase.cs
- DataPagerFieldItem.cs
- ListViewTableCell.cs
- TextEditorLists.cs
- TransactionScope.cs
- VisualCollection.cs
- BaseDataList.cs
- TcpConnectionPool.cs
- ServerReliableChannelBinder.cs
- CodeChecksumPragma.cs
- basemetadatamappingvisitor.cs
- LinkedResourceCollection.cs
- FlowchartDesignerCommands.cs
- TabletCollection.cs
- ContextStack.cs
- MetadataUtilsSmi.cs
- ApplicationBuildProvider.cs
- TreeNodeBinding.cs
- MachinePropertyVariants.cs
- MessageEncodingBindingElementImporter.cs
- XmlSerializerNamespaces.cs
- AnnotationObservableCollection.cs
- AQNBuilder.cs
- HttpMethodConstraint.cs
- XmlFormatWriterGenerator.cs
- ExpressionLexer.cs
- SystemColorTracker.cs
- FontFamilyConverter.cs
- QilGeneratorEnv.cs
- TagPrefixAttribute.cs
- XmlEntity.cs