Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- MultiPageTextView.cs
- SqlDataAdapter.cs
- XmlChildNodes.cs
- RelationshipWrapper.cs
- ObjectDataSourceFilteringEventArgs.cs
- PageSettings.cs
- ValueUnavailableException.cs
- DiscoveryClientRequestChannel.cs
- Light.cs
- GridViewSelectEventArgs.cs
- InternalBase.cs
- StateMachineAction.cs
- KnownTypeDataContractResolver.cs
- MdImport.cs
- InternalDispatchObject.cs
- XmlSchemaSubstitutionGroup.cs
- SplashScreen.cs
- XmlLinkedNode.cs
- OleStrCAMarshaler.cs
- CommonDialog.cs
- Triplet.cs
- ValidationError.cs
- SelectionProcessor.cs
- WebServiceTypeData.cs
- ControllableStoryboardAction.cs
- QuaternionAnimationBase.cs
- DisplayInformation.cs
- Hyperlink.cs
- DBDataPermissionAttribute.cs
- TypeInitializationException.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ParameterElement.cs
- JapaneseCalendar.cs
- GeometryHitTestResult.cs
- Timeline.cs
- MembershipSection.cs
- IIS7WorkerRequest.cs
- ProcessHostMapPath.cs
- UserPreference.cs
- Pair.cs
- WebPartDisplayModeCancelEventArgs.cs
- IntSecurity.cs
- RtType.cs
- SessionIDManager.cs
- MarginCollapsingState.cs
- AppDomainManager.cs
- WasAdminWrapper.cs
- DataGridViewEditingControlShowingEventArgs.cs
- ChildrenQuery.cs
- StringPropertyBuilder.cs
- DesignerSerializationOptionsAttribute.cs
- Wrapper.cs
- WebBrowserNavigatingEventHandler.cs
- RenderDataDrawingContext.cs
- EdmPropertyAttribute.cs
- QualifierSet.cs
- FontFamilyConverter.cs
- DataSet.cs
- SequenceQuery.cs
- EntitySqlException.cs
- MetadataSource.cs
- selecteditemcollection.cs
- CaseCqlBlock.cs
- ArrangedElement.cs
- CallContext.cs
- DeviceContexts.cs
- ScriptControlDescriptor.cs
- MethodBody.cs
- CodeCatchClauseCollection.cs
- SizeLimitedCache.cs
- ResourceExpressionBuilder.cs
- mediaeventshelper.cs
- DataGridViewComboBoxColumn.cs
- InstanceData.cs
- ListViewGroupItemCollection.cs
- GacUtil.cs
- ObjectAnimationUsingKeyFrames.cs
- OrderByLifter.cs
- WsatStrings.cs
- CompareValidator.cs
- TextSelectionHighlightLayer.cs
- ButtonFieldBase.cs
- DecoderExceptionFallback.cs
- GatewayIPAddressInformationCollection.cs
- TransactionScopeDesigner.cs
- TriggerActionCollection.cs
- FileLoadException.cs
- HighlightComponent.cs
- HierarchicalDataSourceControl.cs
- ScrollProviderWrapper.cs
- ReturnValue.cs
- Point3DAnimation.cs
- CharacterMetricsDictionary.cs
- BaseParaClient.cs
- SharedConnectionInfo.cs
- DataTableNewRowEvent.cs
- DeclarativeCatalogPart.cs
- SqlDataSource.cs
- SystemGatewayIPAddressInformation.cs
- Classification.cs