LoginSignup
1
0

JavaScriptと.NETのRegexは解釈が異なる(言語によって異なる)

Last updated at Posted at 2023-10-31

JavaScriptと.NETとのRegexは、正規表現の解釈が異なります。
つまり、結果が異なることがあります。

regex101で確認。

Regular Expression
(([ABC]*)|([abc]*))?

Test String
ABacAB

ECMAScript(JavaScript)

image.png
image.png

4つに一致。
その内、文字列に一致は3つ。
AB
ac
AB

.NET

image.png

image.png

5つに一致。
その内、文字列に一致は2つ。
AB
AB

メモ

  • JavaScriptから、.NETへコードを移植の際、ユニットテストで分かりました。テスト大事。
  • 言語によって、解釈が異なるそうです。やっかいですね。
  • 例にあげた文字列を、JavaScriptのように3つに一致させる正規表現(.NET)がわかりません(このTestStringなら、*+に変更で可。コメントを参照)。仕方ないので、Regexで抽出するのはあきらめて、一文字ずつ確認するコードを作成する予定です。
1
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0