Code:
/ DotNET / DotNET / 8.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
- FormViewRow.cs
- ExpressionBuilder.cs
- ReflectEventDescriptor.cs
- XmlChildNodes.cs
- StandardRuntimeEnumValidator.cs
- shaperfactoryquerycacheentry.cs
- SerializationObjectManager.cs
- ValueConversionAttribute.cs
- DisplayNameAttribute.cs
- ToolStripArrowRenderEventArgs.cs
- WizardStepBase.cs
- ActivityExecutorOperation.cs
- InlineCollection.cs
- StrongNameMembershipCondition.cs
- TreeView.cs
- DebugView.cs
- HtmlWindow.cs
- LongValidator.cs
- PassportAuthentication.cs
- GridItemProviderWrapper.cs
- WebConfigurationFileMap.cs
- ServiceOperationParameter.cs
- VisualTreeUtils.cs
- PersonalizationStateInfo.cs
- Rect.cs
- EventLogEntry.cs
- XmlHelper.cs
- SQLInt64Storage.cs
- GeometryDrawing.cs
- DictionaryTraceRecord.cs
- TableRowCollection.cs
- MutexSecurity.cs
- TextTreeRootTextBlock.cs
- complextypematerializer.cs
- WebHeaderCollection.cs
- ComponentDispatcherThread.cs
- SQLDoubleStorage.cs
- IsolatedStorageFilePermission.cs
- JapaneseCalendar.cs
- MessageEncodingBindingElementImporter.cs
- TextTreeRootTextBlock.cs
- XmlJsonWriter.cs
- BitSet.cs
- QuaternionValueSerializer.cs
- URIFormatException.cs
- SqlDataSource.cs
- CryptoApi.cs
- BitmapMetadataEnumerator.cs
- WebPartVerb.cs
- PeerObject.cs
- KerberosTokenFactoryCredential.cs
- SignedInfo.cs
- SequentialOutput.cs
- WebEventCodes.cs
- ValueQuery.cs
- TrackingDataItem.cs
- ResXResourceWriter.cs
- ResourceProviderFactory.cs
- RoleBoolean.cs
- DeflateStream.cs
- OleDbStruct.cs
- ColorAnimationBase.cs
- MsmqTransportReceiveParameters.cs
- FrameworkElement.cs
- MeasureData.cs
- SqlDataReaderSmi.cs
- ParameterRefs.cs
- KeyedHashAlgorithm.cs
- DataRowExtensions.cs
- ShaperBuffers.cs
- XmlNamespaceMappingCollection.cs
- SimpleWebHandlerParser.cs
- ZipIOBlockManager.cs
- ScrollBar.cs
- GCHandleCookieTable.cs
- SqlCacheDependencyDatabase.cs
- StartUpEventArgs.cs
- ValidatingReaderNodeData.cs
- EmptyEnumerable.cs
- CellConstant.cs
- OSFeature.cs
- ApplicationGesture.cs
- ViewStateException.cs
- TemplatedControlDesigner.cs
- DiscoveryClientRequestChannel.cs
- WpfPayload.cs
- ButtonColumn.cs
- InputScopeManager.cs
- RootBrowserWindowProxy.cs
- Transform3D.cs
- VirtualizingPanel.cs
- FileDialogCustomPlace.cs
- XmlStreamStore.cs
- OverflowException.cs
- NavigationWindow.cs
- ColorBlend.cs
- HttpModuleActionCollection.cs
- BasePropertyDescriptor.cs
- ProxyFragment.cs
- SizeValueSerializer.cs