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
- PriorityQueue.cs
- QueryContinueDragEventArgs.cs
- TreeNodeEventArgs.cs
- RangeValueProviderWrapper.cs
- NullableBoolConverter.cs
- recordstate.cs
- XamlBuildTaskServices.cs
- SortDescriptionCollection.cs
- StreamWriter.cs
- ImpersonateTokenRef.cs
- GroupQuery.cs
- CmsInterop.cs
- ProfileSettings.cs
- FontFamily.cs
- DesignerActionUIService.cs
- MultiView.cs
- DataGridViewLayoutData.cs
- Menu.cs
- RootDesignerSerializerAttribute.cs
- StrongNameHelpers.cs
- TypeNameConverter.cs
- QilVisitor.cs
- BCryptHashAlgorithm.cs
- DesignerExtenders.cs
- SqlProfileProvider.cs
- WebPartTransformerAttribute.cs
- EnumerableValidator.cs
- DataBoundControlHelper.cs
- DataReaderContainer.cs
- Baml2006ReaderSettings.cs
- X509SecurityTokenAuthenticator.cs
- TextSelectionHighlightLayer.cs
- EDesignUtil.cs
- MulticastIPAddressInformationCollection.cs
- CustomServiceCredentials.cs
- XmlDataDocument.cs
- SchemaElementLookUpTableEnumerator.cs
- DifferencingCollection.cs
- CompositeControl.cs
- EarlyBoundInfo.cs
- IndexedEnumerable.cs
- RightsManagementInformation.cs
- EntityContainerEmitter.cs
- DetailsViewUpdateEventArgs.cs
- UriTemplateCompoundPathSegment.cs
- unsafenativemethodsother.cs
- SnapLine.cs
- VisualTreeHelper.cs
- DBParameter.cs
- Menu.cs
- InternalRelationshipCollection.cs
- SqlTransaction.cs
- FullTextLine.cs
- DataKeyCollection.cs
- UnsafeNativeMethods.cs
- CompoundFileStreamReference.cs
- SafeBitVector32.cs
- DataMemberListEditor.cs
- NullableDoubleMinMaxAggregationOperator.cs
- XamlPointCollectionSerializer.cs
- CompareValidator.cs
- Pens.cs
- Pointer.cs
- ProfilePropertySettings.cs
- TraceListener.cs
- SchemaMerger.cs
- HttpApplicationFactory.cs
- WmpBitmapDecoder.cs
- BamlTreeUpdater.cs
- HttpStreamMessageEncoderFactory.cs
- Ray3DHitTestResult.cs
- EncryptedType.cs
- TransformerInfo.cs
- LinkButton.cs
- WebPartHelpVerb.cs
- jithelpers.cs
- BinaryKeyIdentifierClause.cs
- SqlRowUpdatingEvent.cs
- ConnectionsZoneAutoFormat.cs
- ListInitExpression.cs
- InstanceKeyNotReadyException.cs
- VideoDrawing.cs
- DesignerObject.cs
- AuthenticationConfig.cs
- XmlSchema.cs
- NullableFloatSumAggregationOperator.cs
- SRef.cs
- InvalidComObjectException.cs
- AliasedSlot.cs
- DebugView.cs
- AbstractDataSvcMapFileLoader.cs
- ItemsPresenter.cs
- EpmContentSerializer.cs
- HttpSocketManager.cs
- AlignmentYValidation.cs
- CalendarAutoFormat.cs
- RbTree.cs
- M3DUtil.cs
- TrackingStringDictionary.cs
- PointHitTestParameters.cs