改めて正規表現を勉強していて聞いたことない言葉があったのでまとめてみます。
以下のブログが参考になりました。
ありがとうございます。
(正規表現) 最長一致、最短一致、貪欲な、数量詞 : ゴリゴリ★コード_Java
最長、最短、貪欲 最長一致数量子 最短一致数量子 貪欲な数量子 greedy quantifier のgreedyが「貪欲、強欲、欲張りな…」の意味 import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test...
(正規表現) 最短一致の使い方 : ゴリゴリ★コード_Java
最短一致の使い方 最短一致数量子の挙動を調べてみる。 以下のコードでは、最長一致数量子と最短一致数量子でのマッチングの結果は同じになる。 import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { ...
最長一致数量子
最長一致数量子とは、最も長い部分にマッチする。
サンプル
構文 | 説明 |
X? | X、1 または 0 回 |
X* | X、0 回以上 |
X+ | X、1 回以上 |
X{n} | X、n 回 |
X{n,} | X、n 回以上 |
X{n,m} | X、n 回以上、m 回以下 |
入力 | 正規表現 | 抽出文字列 |
xxxxxxy | x* | xxxxxx |
xxxxxxy | x+ | xxxxxx |
xxxxxxy | x? | x |
xxxxxxy | x{3} | xxx |
xxxxxxy | x{3,} | xxxxxx |
xxxxxxy | x{3,5} | xxxxx |
最短一致数量子
最短一致数量子とは、最も短い部分にマッチする。
サンプル
構文 | 説明 |
X?? | X、1 または 0 回 |
X*? | X、0 回以上 |
X+? | X、1 回以上 |
X{n}? | X、n 回 |
X{n,}? | X、n 回以上 |
X{n,m}? | X、n 回以上、m 回以下 |
入力 | 正規表現 | 抽出文字列 |
xxxxxxy | x*? | |
xxxxxxy | x+? | x |
xxxxxxy | x?? | |
xxxxxxy | x{3}? | xxx |
xxxxxxy | x{3,}? | xxx |
xxxxxxy | x{3,5}? | xxx |
強欲な数量子
こちらは言葉での説明が難しいので、気になる方は以下を参考にしてみて下さい。
貪欲と怠惰な量指定子
構文 | 説明 |
X?+ | X、1 または 0 回 |
X*+ | X、0 回以上 |
X++ | X、1 回以上 |
X{n}+ | X、n 回 |
X{n,}+ | X、n 回以上 |
X{n,m}+ | X、n 回以上、m 回以下 |
入力 | 正規表現 | 抽出文字列 |
xxxxxxy | x* | xxxxxx |
xxxxxxy | x+ | xxxxxx |
xxxxxxy | x? | x |
xxxxxxy | x{3} | xxx |
xxxxxxy | x{3,} | xxxxxx |
xxxxxxy | x{3,5} | xxxxx |
入力 | 正規表現 | 抽出文字列 |
xxxxxxy | x*? | |
xxxxxxy | x+? | x |
xxxxxxy | x?? | |
xxxxxxy | x{3}? | xxx |
xxxxxxy | x{3,}? | xxx |
xxxxxxy | x{3,5}? | xxx |
コメント