C# Class Udger.Parser.PerlRegExpConverter

Used for converting PHP Perl like regular expressions to .NET regular expressions.
显示文件 Open project: udger/udger-dotnet Class Usage Examples

Private Properties

Property Type Description
AlphaNumericToDigit int
ConvertBytes string
ConvertPattern void
ConvertRegex string
ConvertReplacement string
ConvertString string
CountCharacterClass string
CountRange bool
CountUnicodeRange bool
EscapeBracketExpressionSpecialChars string
ExtractExceptionalMessage string
FindRegexDelimiters void
IsCharRegexSpecial bool
IsDigitGroupReference bool
IsParenthesizedGroupReference bool
LoadPerlRegex void
LoadPerlRegex void
ModifyRegExpAnchored void
ParseEscapeCode bool
ParseRegexOptions void

Public Methods

Method Description
PerlRegExpConverter ( string pattern, string replacement, Encoding encoding ) : System

Creates new PerlRegExpConverter and converts Perl regular expression to .NET.

Private Methods

Method Description
AlphaNumericToDigit ( char x ) : int
ConvertBytes ( byte bytes, int start, int length ) : string
ConvertPattern ( string pattern ) : void
ConvertRegex ( string perlExpr, PerlRegexOptions opt, Encoding encoding ) : string

Converts Perl match expression (only, without delimiters, options etc.) to .NET regular expression.

ConvertReplacement ( string replacement ) : string

Converts substitutions of the form \\xx to $xx (perl to .NET format).

ConvertString ( string str, int start, int length ) : string
CountCharacterClass ( string chClassName ) : string

Takes character class name and returns string containing appropriate characters. Returns null if has got unknown character class name.

CountRange ( char firstCharacter, char secondCharacter, string &characters, int &result, Encoding encoding ) : bool

Takes endpoints of a range and returns string containing appropriate characters.

CountUnicodeRange ( char f, char t, string &range ) : bool

Simple version of 'PosixRegExp.BracketExpression.CountRange' function. Generates string with all characters in specified range, but uses unicode encoding.

EscapeBracketExpressionSpecialChars ( string chars ) : string

Escapes characters that have special meaning in bracket expression to make them ordinary characters.

ExtractExceptionalMessage ( string message ) : string

Extracts the .NET exceptional message from the message stored in an exception. The message has format 'parsing "{pattern}" - {message}\r\nParameter name {pattern}' in .NET 1.1.

FindRegexDelimiters ( StringBuilder pattern, int &start, int &end ) : void
IsCharRegexSpecial ( char ch ) : bool

Returns true if character needs to be escaped in .NET regex

IsDigitGroupReference ( string replacement, int i ) : bool
IsParenthesizedGroupReference ( string replacement, int i ) : bool
LoadPerlRegex ( byte pattern ) : void
LoadPerlRegex ( string pattern ) : void
ModifyRegExpAnchored ( string &expr ) : void

Modifies regular expression so it matches only at the beginning of the string.

ParseEscapeCode ( Encoding encoding, string str, int &pos, char &ch, bool &escaped ) : bool

Parses escaped sequences: "\[xX][0-9A-Fa-f]{2}", "\[xX]\{[0-9A-Fa-f]{0,4}\}", "\[0-7]{3}", "\[pP]{Unicode Category}"

ParseRegexOptions ( StringBuilder pattern, int start, RegexOptions &dotNetOptions, PerlRegexOptions &extraOptions ) : void

Method Details

PerlRegExpConverter() public method

Creates new PerlRegExpConverter and converts Perl regular expression to .NET.
public PerlRegExpConverter ( string pattern, string replacement, Encoding encoding ) : System
pattern string Perl regular expression to convert.
replacement string Perl replacement string to convert or a null reference for match only.
encoding System.Text.Encoding Encoding used in the case the pattern is a binary string.
return System