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
- ProfilePropertySettings.cs
- GenericTypeParameterBuilder.cs
- autovalidator.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- AdornerHitTestResult.cs
- DeliveryStrategy.cs
- GridViewCancelEditEventArgs.cs
- SmtpFailedRecipientException.cs
- ChtmlTextWriter.cs
- XmlTextAttribute.cs
- DiagnosticTraceSource.cs
- DataGridTextBox.cs
- DataPointer.cs
- MimeTypePropertyAttribute.cs
- UnsafeNativeMethods.cs
- ConfigurationSection.cs
- TraceSwitch.cs
- BitStack.cs
- Regex.cs
- ITextView.cs
- DateTimeUtil.cs
- TextBoxView.cs
- AndCondition.cs
- SynchronizedDispatch.cs
- MessageCredentialType.cs
- NotCondition.cs
- BitmapDownload.cs
- MsmqElementBase.cs
- TargetException.cs
- StylusCaptureWithinProperty.cs
- DebugControllerThread.cs
- SQLGuid.cs
- CalendarKeyboardHelper.cs
- LinearGradientBrush.cs
- AnimationTimeline.cs
- RSAPKCS1SignatureFormatter.cs
- RangeValidator.cs
- HostUtils.cs
- EditorPartChrome.cs
- CssClassPropertyAttribute.cs
- SmiEventSink.cs
- TimeIntervalCollection.cs
- EventSource.cs
- FilteredDataSetHelper.cs
- BrowserTree.cs
- ModelItemCollectionImpl.cs
- SimpleBitVector32.cs
- TagElement.cs
- BitConverter.cs
- SqlConnectionFactory.cs
- DesignerTransaction.cs
- IsolatedStorage.cs
- OneOfScalarConst.cs
- AudioFormatConverter.cs
- ToolStripSeparator.cs
- _SslState.cs
- HtmlInputFile.cs
- SoapSchemaImporter.cs
- WorkflowPrinting.cs
- HtmlInputControl.cs
- MouseDevice.cs
- HtmlTernaryTree.cs
- ButtonBase.cs
- DataGridViewComboBoxColumn.cs
- NCryptNative.cs
- XmlUtf8RawTextWriter.cs
- SimpleNameService.cs
- DesignerActionListCollection.cs
- ThemeDictionaryExtension.cs
- FakeModelPropertyImpl.cs
- CharacterBuffer.cs
- UserControlBuildProvider.cs
- EntityDataSourceDataSelectionPanel.cs
- Selector.cs
- Debugger.cs
- DocumentPage.cs
- BCLDebug.cs
- XPathDocument.cs
- SmiEventSink_DeferedProcessing.cs
- WebEventCodes.cs
- WebHeaderCollection.cs
- Operator.cs
- CellPartitioner.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- _Semaphore.cs
- InkCanvasSelectionAdorner.cs
- ProxyWebPartManager.cs
- ToolStripContentPanelRenderEventArgs.cs
- PassportIdentity.cs
- BinaryFormatterWriter.cs
- TdsParserStateObject.cs
- NamedPipeConnectionPool.cs
- ObjectHelper.cs
- Random.cs
- XMLSchema.cs
- SqlBooleanMismatchVisitor.cs
- TargetException.cs
- ParseHttpDate.cs
- TextBoxView.cs
- XPathAncestorIterator.cs