【 正規表現】最長一致数量子/最短一致数量子【java】

Java

改めて正規表現を勉強していて聞いたことない言葉があったのでまとめてみます。

以下のブログが参考になりました。
ありがとうございます。

(正規表現) 最長一致、最短一致、貪欲な、数量詞 : ゴリゴリ★コード_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
xxxxxxyx+xxxxxx
xxxxxxyx?x
xxxxxxyx{3}xxx
xxxxxxyx{3,}xxxxxx
xxxxxxyx{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*?
xxxxxxyx+?x
xxxxxxyx??
xxxxxxyx{3}?xxx
xxxxxxyx{3,}?xxx
xxxxxxyx{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
xxxxxxyx+xxxxxx
xxxxxxyx?x
xxxxxxyx{3}xxx
xxxxxxyx{3,}xxxxxx
xxxxxxyx{3,5}xxxxx
入力正規表現 抽出文字列 
xxxxxxy x*?
xxxxxxyx+?x
xxxxxxyx??
xxxxxxyx{3}?xxx
xxxxxxyx{3,}?xxx
xxxxxxyx{3,5}?xxx

フリーランスを目指すなら【テックパートナーズカレッジ】

未経験者向けWEBスクール【SHElikes】

コメント