正規表現をデコードしようとしています。以下の正規表現の意味を確認する方法はありますか?
^(PC([Y\\d])|GC([Y\\d])|Y|\\d)\\d{4,5}$
http://www.myezapp.com/apps/dev/regexp/show.wsまたはhttp://www.debuggex.com/で正規表現アナライザーを使用できます。
^ = start of string
() = capturing groups
[] = character classes
\d = digit in 0-9
\\ = literal backslash
| = OR
{} = count of leading item
$ = end of string
これが起こっていることの内訳です。
正規表現: ^(PC([Y\\d])|GC([Y\\d])|Y|\\d)\\d{4,5}$
1. ^ - Beginning of line
2. ( - Beginning of a capture group
3. PC - Finds `PC` exactly
4. ([Y\\d]) - Creates a capture group for a Y or a single digit (0-9)
5. | - This is an OR statement
6. GC - Finds `GC` exactly
7. ([Y\\d]) - Same as 4
8. | - This is an OR statement
9. Y - Finds `Y` exactly
10. | - This is an OR statement
11. \\d - This looks for a single digit (0-9)
12. ) - End of capture group. Lines 3-11 will be in this capture group
13. \\d{4,5} - This will look any digit exactly 4 or 5 times
14. $ - End of line
これには3つのキャプチャグループがあります。
1. (PC([Y\\d])|GC([Y\\d])|Y|\\d)
2. ([Y\\d]) (The first one)
3. ([Y\\d]) (The second one)
有効な一致のリストは次のとおりです(任意の数が見つかります。123456を使用して、いくつの場所が存在する可能性があるかを示しました)。
これは、各一致のキャプチャグループの説明を含むRegExrへのリンクです。
\
また、ダブルインの理由は、Javaのfor\\d
をエスケープするためです。\
すべての言語がこれを必要とするわけではなく、私が理解していることから、3が必要な言語もあります。上記のRegExrで気付いた場合は、RegExrがRegexを正しく解析するようにそれらを削除しました。
Regexperは、正規表現を分析するための優れたツールでもあります。