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
- SelectionProviderWrapper.cs
- iisPickupDirectory.cs
- EntityProviderFactory.cs
- MsmqIntegrationBindingElement.cs
- Int32Storage.cs
- UTF7Encoding.cs
- ResourceDescriptionAttribute.cs
- PromptEventArgs.cs
- SubMenuStyle.cs
- MenuCommandsChangedEventArgs.cs
- StringSorter.cs
- XPathNavigatorException.cs
- Section.cs
- FocusTracker.cs
- KeyboardNavigation.cs
- TimeStampChecker.cs
- GenericEnumConverter.cs
- PersonalizationAdministration.cs
- IfJoinedCondition.cs
- CodeCatchClause.cs
- QueuedDeliveryRequirementsMode.cs
- CngProvider.cs
- TreeNodeEventArgs.cs
- unitconverter.cs
- CatalogPartDesigner.cs
- VectorCollectionConverter.cs
- WinEventHandler.cs
- ClientCultureInfo.cs
- RegexInterpreter.cs
- Literal.cs
- DbExpressionBuilder.cs
- SafeNativeMethodsMilCoreApi.cs
- ReflectTypeDescriptionProvider.cs
- RowsCopiedEventArgs.cs
- DataGridPagerStyle.cs
- Privilege.cs
- Baml2006ReaderContext.cs
- HyperlinkAutomationPeer.cs
- Image.cs
- SocketCache.cs
- ResourceExpressionBuilder.cs
- input.cs
- Cell.cs
- DataGridViewCellConverter.cs
- MetricEntry.cs
- TcpHostedTransportConfiguration.cs
- SafeRightsManagementEnvironmentHandle.cs
- SearchForVirtualItemEventArgs.cs
- WebServiceHandler.cs
- ExeContext.cs
- CallTemplateAction.cs
- CacheMode.cs
- VerificationAttribute.cs
- IProvider.cs
- SymDocumentType.cs
- SHA256CryptoServiceProvider.cs
- XPathDocumentIterator.cs
- SelectionGlyph.cs
- MemberInfoSerializationHolder.cs
- TemplateColumn.cs
- ApplicationSecurityInfo.cs
- DesignUtil.cs
- HtmlForm.cs
- InputScopeNameConverter.cs
- JavaScriptSerializer.cs
- CollectionView.cs
- InvalidEnumArgumentException.cs
- ServiceBusyException.cs
- MdImport.cs
- CryptoProvider.cs
- StateWorkerRequest.cs
- InstanceCompleteException.cs
- Decorator.cs
- SerTrace.cs
- BaseCodeDomTreeGenerator.cs
- RevocationPoint.cs
- WorkflowRequestContext.cs
- ThreadExceptionDialog.cs
- HttpException.cs
- Constraint.cs
- DataTemplateKey.cs
- SystemDiagnosticsSection.cs
- DefaultPerformanceCounters.cs
- StreamGeometryContext.cs
- XmlMembersMapping.cs
- IndexedEnumerable.cs
- NativeMethods.cs
- ToolStripHighContrastRenderer.cs
- IIS7ConfigurationLoader.cs
- TextLine.cs
- ColumnBinding.cs
- BrowserDefinition.cs
- ThreadInterruptedException.cs
- FontSource.cs
- ReachFixedPageSerializer.cs
- DocumentViewerBaseAutomationPeer.cs
- ObjectSecurity.cs
- UnaryNode.cs
- SafeThreadHandle.cs
- GridSplitterAutomationPeer.cs