Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / RegexWorker.cs / 2 / 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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MergeFailedEvent.cs
- SystemTcpStatistics.cs
- XmlNode.cs
- LocalFileSettingsProvider.cs
- NativeWindow.cs
- LazyInitializer.cs
- TaskHelper.cs
- SystemInfo.cs
- __Error.cs
- ScrollData.cs
- ConfigurationValues.cs
- ElapsedEventArgs.cs
- EntitySetDataBindingList.cs
- Evidence.cs
- NameValueCollection.cs
- figurelengthconverter.cs
- recordstatescratchpad.cs
- GridPattern.cs
- DataControlPagerLinkButton.cs
- diagnosticsswitches.cs
- GraphicsState.cs
- SecurityException.cs
- BaseCodePageEncoding.cs
- TextEditor.cs
- Nullable.cs
- HostProtectionException.cs
- ReturnEventArgs.cs
- storepermission.cs
- ObjectViewEntityCollectionData.cs
- OutputScopeManager.cs
- Matrix.cs
- ToolCreatedEventArgs.cs
- RequestQueue.cs
- WebPartTracker.cs
- DoubleLink.cs
- EntityDataReader.cs
- GeneratedCodeAttribute.cs
- XmlWriterDelegator.cs
- ForwardPositionQuery.cs
- SqlProvider.cs
- CallbackHandler.cs
- TrustLevelCollection.cs
- NonVisualControlAttribute.cs
- WaitHandleCannotBeOpenedException.cs
- RouteData.cs
- ThicknessKeyFrameCollection.cs
- TimerElapsedEvenArgs.cs
- ChannelDispatcherBase.cs
- FixedDocument.cs
- MachineSettingsSection.cs
- CellParaClient.cs
- ImageField.cs
- LinqDataSourceStatusEventArgs.cs
- DispatcherEventArgs.cs
- DataObjectFieldAttribute.cs
- ChildrenQuery.cs
- CompositeFontFamily.cs
- MappableObjectManager.cs
- ExpressionVisitor.cs
- InstanceView.cs
- CalendarDay.cs
- Image.cs
- GeneralTransform3D.cs
- CompiledIdentityConstraint.cs
- Crc32.cs
- SecurityUniqueId.cs
- HWStack.cs
- StateDesigner.TransitionInfo.cs
- linebase.cs
- CapabilitiesUse.cs
- RequestUriProcessor.cs
- ParallelDesigner.cs
- LookupNode.cs
- SqlWebEventProvider.cs
- LineBreakRecord.cs
- SqlBulkCopyColumnMappingCollection.cs
- InteropEnvironment.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- FileSystemWatcher.cs
- ConstructorArgumentAttribute.cs
- sqlstateclientmanager.cs
- ShaderEffect.cs
- EntitySqlException.cs
- XmlValidatingReader.cs
- MatchingStyle.cs
- WebServicesDescriptionAttribute.cs
- ResourceManager.cs
- WorkflowViewStateService.cs
- XmlSchemaInferenceException.cs
- QueryContinueDragEvent.cs
- XsdBuilder.cs
- AnnotationDocumentPaginator.cs
- ManipulationStartingEventArgs.cs
- FrameSecurityDescriptor.cs
- XmlDictionaryReaderQuotasElement.cs
- ToolStripScrollButton.cs
- Screen.cs
- Point3D.cs
- RectAnimationClockResource.cs
- HttpCachePolicyElement.cs