JavaScriptと.NETとのRegexは、正規表現の解釈が異なります。
つまり、結果が異なることがあります。
regex101で確認。
例
Regular Expression
(([ABC]*)|([abc]*))?
Test String
ABacAB
ECMAScript(JavaScript)
4つに一致。
その内、文字列に一致は3つ。
AB
ac
AB
.NET
5つに一致。
その内、文字列に一致は2つ。
AB
AB
メモ
- JavaScriptから、.NETへコードを移植の際、ユニットテストで分かりました。テスト大事。
- 言語によって、解釈が異なるそうです。やっかいですね。
- 例にあげた文字列を、
JavaScript
のように3つに一致させる正規表現(.NET)がわかりません(このTestString
なら、*
を+
に変更で可。コメントを参照)。仕方ないので、Regex
で抽出するのはあきらめて、一文字ずつ確認するコードを作成する予定です。