Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / Configuration / RegexWorker.cs / 5 / 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
- DataGridCaption.cs
- PrinterSettings.cs
- RotateTransform.cs
- FixedSOMTable.cs
- SafeNativeMethods.cs
- TextRunProperties.cs
- SQLCharsStorage.cs
- CellCreator.cs
- OneOfScalarConst.cs
- EntityStoreSchemaFilterEntry.cs
- DialogResultConverter.cs
- DefaultAssemblyResolver.cs
- CacheForPrimitiveTypes.cs
- ReferentialConstraint.cs
- AmbientProperties.cs
- SamlAuthorityBinding.cs
- QueryCacheKey.cs
- InvariantComparer.cs
- TransactionScope.cs
- SafeFindHandle.cs
- SemaphoreSecurity.cs
- SerializationHelper.cs
- BitmapEffectInput.cs
- TreeNodeClickEventArgs.cs
- TemplateDefinition.cs
- FixedSOMLineRanges.cs
- GetPageCompletedEventArgs.cs
- LicenseProviderAttribute.cs
- VariableModifiersHelper.cs
- Cursor.cs
- DbConnectionPoolIdentity.cs
- SHA512Managed.cs
- ImageButton.cs
- EventLogStatus.cs
- Formatter.cs
- AddInAttribute.cs
- XPathNodeList.cs
- SafeIUnknown.cs
- IdnMapping.cs
- DbgUtil.cs
- XmlSchemaObjectTable.cs
- ConfigUtil.cs
- QilLoop.cs
- TreeIterators.cs
- ContractInstanceProvider.cs
- RequiredAttributeAttribute.cs
- Main.cs
- ToolStripDropDownItemDesigner.cs
- MemberProjectionIndex.cs
- PaginationProgressEventArgs.cs
- SmiMetaData.cs
- Separator.cs
- BitmapEffectvisualstate.cs
- UrlPropertyAttribute.cs
- ContentElementAutomationPeer.cs
- Socket.cs
- KeyValueInternalCollection.cs
- CodeAccessSecurityEngine.cs
- StreamWithDictionary.cs
- MetadataFile.cs
- LostFocusEventManager.cs
- DataBindingHandlerAttribute.cs
- WindowsRegion.cs
- JsonFaultDetail.cs
- Serializer.cs
- TableLayoutSettingsTypeConverter.cs
- SchemaExporter.cs
- TimeZone.cs
- SecurityElement.cs
- InstanceDataCollection.cs
- UnknownBitmapDecoder.cs
- SafeThreadHandle.cs
- NativeWindow.cs
- TransportBindingElementImporter.cs
- DecoderFallback.cs
- PathFigureCollectionValueSerializer.cs
- HttpCachePolicy.cs
- Compiler.cs
- NegotiateStream.cs
- TextClipboardData.cs
- QuotedPrintableStream.cs
- StyleBamlRecordReader.cs
- ForwardPositionQuery.cs
- ProgressBarHighlightConverter.cs
- Int16AnimationBase.cs
- Matrix3D.cs
- Bind.cs
- ScheduleChanges.cs
- ViewCellSlot.cs
- TreeNodeConverter.cs
- Point3DAnimationBase.cs
- CodeCatchClauseCollection.cs
- SqlDataReaderSmi.cs
- ToolStripTemplateNode.cs
- KeyProperty.cs
- DecimalAnimationBase.cs
- RowUpdatingEventArgs.cs
- ContextMarshalException.cs
- ClaimComparer.cs
- EntityDataSourceQueryBuilder.cs