Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / xsp / System / Web / Configuration / RegexWorker.cs / 1 / 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; } } } // 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 { // [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; } } } // 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
- OdbcDataReader.cs
- Variable.cs
- XmlNamespaceManager.cs
- OdbcErrorCollection.cs
- ButtonBaseAutomationPeer.cs
- DocumentSequence.cs
- ParameterReplacerVisitor.cs
- TemplateComponentConnector.cs
- _IPv6Address.cs
- CommonGetThemePartSize.cs
- DetailsViewDeleteEventArgs.cs
- DefaultBinder.cs
- XD.cs
- Selection.cs
- CqlErrorHelper.cs
- InitialServerConnectionReader.cs
- BitStream.cs
- TCEAdapterGenerator.cs
- SafeEventHandle.cs
- basenumberconverter.cs
- DynamicPropertyHolder.cs
- SoundPlayer.cs
- SqlDataReader.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- ZipIOExtraFieldElement.cs
- ReflectEventDescriptor.cs
- NumberSubstitution.cs
- WebZone.cs
- DesignerActionItem.cs
- DependencyObjectProvider.cs
- ShutDownListener.cs
- VersionPair.cs
- JsonReaderWriterFactory.cs
- AsymmetricSecurityBindingElement.cs
- GridViewDeleteEventArgs.cs
- InfoCardService.cs
- GetRecipientRequest.cs
- ListComponentEditor.cs
- DateTimeUtil.cs
- OptimizedTemplateContent.cs
- ProcessThread.cs
- NotFiniteNumberException.cs
- PolyBezierSegmentFigureLogic.cs
- IPAddress.cs
- StylusPointProperties.cs
- ButtonFlatAdapter.cs
- MissingMemberException.cs
- CheckBoxBaseAdapter.cs
- ExpressionBuilder.cs
- APCustomTypeDescriptor.cs
- FileDetails.cs
- MimeAnyImporter.cs
- SocketElement.cs
- StrongBox.cs
- Stylus.cs
- Point.cs
- SafeEventLogReadHandle.cs
- DelegatingConfigHost.cs
- IIS7WorkerRequest.cs
- SmtpFailedRecipientException.cs
- CommonProperties.cs
- InternalDuplexChannelListener.cs
- RepeaterDesigner.cs
- ConfigXmlWhitespace.cs
- HttpHandlersSection.cs
- MatchingStyle.cs
- AddressHeaderCollection.cs
- ChannelCacheSettings.cs
- ToolStripDesignerAvailabilityAttribute.cs
- TreeNodeBindingCollection.cs
- RsaKeyGen.cs
- FormsAuthentication.cs
- ScriptControl.cs
- ErrorLog.cs
- ChtmlMobileTextWriter.cs
- SecurityTokenSerializer.cs
- UdpTransportSettingsElement.cs
- WpfWebRequestHelper.cs
- sqlstateclientmanager.cs
- XmlSecureResolver.cs
- BaseAddressPrefixFilterElementCollection.cs
- MergeLocalizationDirectives.cs
- HealthMonitoringSection.cs
- UpdatePanelTriggerCollection.cs
- BinaryObjectWriter.cs
- FilterElement.cs
- XmlSchemaSimpleTypeUnion.cs
- _BasicClient.cs
- SingleObjectCollection.cs
- FixedHyperLink.cs
- Activator.cs
- XmlReturnWriter.cs
- ProvideValueServiceProvider.cs
- RuntimeHandles.cs
- CodeStatement.cs
- StreamInfo.cs
- LoginCancelEventArgs.cs
- EventPropertyMap.cs
- SelectionItemPattern.cs
- PropertyGridCommands.cs