Diese Perl binäre regex bei http://www.w3.org/International/questions/qa-forms-utf-8.en.php gefunden entspricht UTF-8-Dokumente ohne UTF-8 BOM-Header:Wie kann ich einen komplexen binären regulären Perl-Ausdruck in C# oder PowerShell konvertieren?
$field =~
m/\A(
[\x09\x0A\x0D\x20-\x7E] # ASCII
| [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16
)*\z/x;
ich das brauche, weil ich auf einem PowerShell equivalent to 'grep -I' arbeite, und ein Teil davon beinhaltet Textcodierung zu erkennen.
Aber wie schreibe ich das in C# oder PowerShell? Oder mit anderen Worten, in der ".Net Regex" -Syntax?
EDIT: Gefunden http://social.msdn.microsoft.com/Forums/en-US/regexp/thread/6a81be63-e6da-4156-a5bf-8b9782a1ac40 Frage über den gleichen Regex aller Dinge. Die kurze Antwort scheint, dass dies mit .Net nicht möglich ist, da .Net keine binären regulären Ausdrücke unterstützt.
Dies ist eine sehr einfache Regex. Können Sie erklären, welches spezielle Problem Sie haben, um dies zu konvertieren? –