Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / RegexWorker.cs / 2 / 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 { // [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] 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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PropertyEmitter.cs
- DefaultPerformanceCounters.cs
- AspNetHostingPermission.cs
- HostedAspNetEnvironment.cs
- SQLBinaryStorage.cs
- DefaultValueAttribute.cs
- VScrollBar.cs
- TreeNode.cs
- SharedPerformanceCounter.cs
- Point3DAnimationBase.cs
- XmlSchemaProviderAttribute.cs
- WSSecurityOneDotOneSendSecurityHeader.cs
- CqlGenerator.cs
- SharedUtils.cs
- SymbolPair.cs
- RectangleHotSpot.cs
- MissingFieldException.cs
- NavigationPropertyEmitter.cs
- TransformCollection.cs
- ClientProxyGenerator.cs
- CqlParser.cs
- LinqMaximalSubtreeNominator.cs
- LogReserveAndAppendState.cs
- DataSysAttribute.cs
- ZipIOExtraFieldPaddingElement.cs
- odbcmetadatacolumnnames.cs
- ByteConverter.cs
- HttpHostedTransportConfiguration.cs
- Filter.cs
- ETagAttribute.cs
- UserInitiatedRoutedEventPermission.cs
- WebPartManagerInternals.cs
- DetailsViewPagerRow.cs
- ApplicationProxyInternal.cs
- SchemaNames.cs
- ProxyWebPart.cs
- InkCanvasSelection.cs
- CustomAttributeBuilder.cs
- DrawingCollection.cs
- FixedSOMImage.cs
- ResumeStoryboard.cs
- XmlMtomWriter.cs
- FigureHelper.cs
- TrackPoint.cs
- StorageBasedPackageProperties.cs
- MiniCustomAttributeInfo.cs
- AspCompat.cs
- WrappedIUnknown.cs
- PeerObject.cs
- FileFormatException.cs
- GPRECTF.cs
- DataDocumentXPathNavigator.cs
- RijndaelManaged.cs
- StackBuilderSink.cs
- ClientRoleProvider.cs
- SamlConstants.cs
- DataGridViewCellFormattingEventArgs.cs
- TableLayoutSettings.cs
- SqlWriter.cs
- WebServicesDescriptionAttribute.cs
- TransactionInterop.cs
- WebMethodAttribute.cs
- CodeDomSerializerException.cs
- TreeView.cs
- XmlMtomWriter.cs
- WmlTextViewAdapter.cs
- RtfFormatStack.cs
- _FixedSizeReader.cs
- RSAPKCS1SignatureDeformatter.cs
- DSASignatureFormatter.cs
- MachineKeySection.cs
- hresults.cs
- SqlCommand.cs
- PropertyDescriptorGridEntry.cs
- ZipIOBlockManager.cs
- SafeCertificateStore.cs
- Oid.cs
- ModulesEntry.cs
- XmlSchemaAny.cs
- ObjectNavigationPropertyMapping.cs
- GuidelineSet.cs
- TraceLog.cs
- ToggleButtonAutomationPeer.cs
- XmlCharCheckingWriter.cs
- SqlDependencyUtils.cs
- WebPartVerb.cs
- AppDomainManager.cs
- CodeDirectoryCompiler.cs
- RegexTree.cs
- TableLayoutSettings.cs
- ConnectionPointCookie.cs
- ClientScriptManager.cs
- EventProxy.cs
- DateTimeUtil.cs
- CodeStatement.cs
- XamlToRtfWriter.cs
- WebContext.cs
- MeshGeometry3D.cs
- TypeElement.cs
- ColorContext.cs