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
- XmlSerializableWriter.cs
- PointHitTestResult.cs
- WinFormsSpinner.cs
- SessionSwitchEventArgs.cs
- UnmanagedMarshal.cs
- ThreadPool.cs
- CancelRequestedQuery.cs
- DataTableTypeConverter.cs
- CellParagraph.cs
- CssClassPropertyAttribute.cs
- PaginationProgressEventArgs.cs
- OdbcFactory.cs
- RightNameExpirationInfoPair.cs
- NullableConverter.cs
- HttpHandlersSection.cs
- HostProtectionException.cs
- BrowsableAttribute.cs
- EnumBuilder.cs
- Utility.cs
- CapabilitiesAssignment.cs
- WmfPlaceableFileHeader.cs
- WeakReferenceEnumerator.cs
- OverflowException.cs
- GlyphInfoList.cs
- SystemWebExtensionsSectionGroup.cs
- CellCreator.cs
- AuthenticationService.cs
- ImageCodecInfoPrivate.cs
- ContentPlaceHolder.cs
- parserscommon.cs
- CompilerGeneratedAttribute.cs
- XmlAtomErrorReader.cs
- OperationResponse.cs
- DataGridViewCellMouseEventArgs.cs
- InstanceData.cs
- FileDialogCustomPlacesCollection.cs
- UndoManager.cs
- WindowsToolbar.cs
- ProcessModelInfo.cs
- ToolStripSplitStackLayout.cs
- Resources.Designer.cs
- XmlSchemaExternal.cs
- ResourceAttributes.cs
- MonikerUtility.cs
- CodeNamespaceCollection.cs
- SizeValueSerializer.cs
- SqlLiftWhereClauses.cs
- MaskedTextProvider.cs
- Token.cs
- DataGridTablesFactory.cs
- Color.cs
- IIS7WorkerRequest.cs
- CacheDict.cs
- CryptoStream.cs
- TemplateControlBuildProvider.cs
- XsltContext.cs
- HttpListenerPrefixCollection.cs
- TextEffectCollection.cs
- MetadataFile.cs
- Color.cs
- RadioButtonStandardAdapter.cs
- ConnectionStringsExpressionBuilder.cs
- NamedObject.cs
- MyContact.cs
- CompilationRelaxations.cs
- C14NUtil.cs
- LoadedOrUnloadedOperation.cs
- BinaryUtilClasses.cs
- XmlAttributeCollection.cs
- RuleSettingsCollection.cs
- ServerIdentity.cs
- CompilerErrorCollection.cs
- DrawingState.cs
- ProfileModule.cs
- AuthorizationSection.cs
- xmlsaver.cs
- OutKeywords.cs
- GridViewHeaderRowPresenter.cs
- SystemBrushes.cs
- StrongNameUtility.cs
- UrlMappingsSection.cs
- TcpStreams.cs
- StoreItemCollection.Loader.cs
- QuotaThrottle.cs
- Brush.cs
- InputLanguageSource.cs
- WsdlImporter.cs
- TableRowCollection.cs
- SkinBuilder.cs
- Literal.cs
- DateTimeOffsetConverter.cs
- TokenFactoryBase.cs
- validation.cs
- Ipv6Element.cs
- XmlSchemaIdentityConstraint.cs
- SqlDataRecord.cs
- SystemGatewayIPAddressInformation.cs
- Rotation3DAnimationUsingKeyFrames.cs
- ConfigXmlElement.cs
- RowSpanVector.cs