Ruby 言語の正規表現に関する本を読んだばかりです。私はそれをグーグルでやったが、それでも と について混乱{x}
し{x,y}
た.
本は言う:
{x}→前の文字の x 回の出現に一致します。
{x,y}→少なくとも x 回、最大で y 回の出現に一致します。
誰かがこれをよりよく説明したり、いくつかの例を提供したりできますか?
確かに、これらの例を見てください:
http://rubular.com/r/sARHv0vf72
http://rubular.com/r/730Zo6rIls
/a{4}/
は、次の短いバージョンです。
/aaaa/
それは言う:「a」の正確な4(連続)文字に一致。
どこ
/a{2,4}/
発言: 'a' の少なくとも 2 文字、最大 4 文字に一致します。
それは一致します
/aa/
/aaa/
/aaaa/
そして似合わない
/a/
/aaaaa/
/xxx/
GNU awk は、マニュアルのRegexp Operatorsセクションでこれらを「間隔式」と呼んでいます。式について次のように説明しています。
{n}
{n,}
{n,m}
中括弧内の 1 つまたは 2 つの数値は、区間式を表します。中括弧内に数字が 1 つある場合、前の正規表現が n 回繰り返されます。コンマで区切られた 2 つの数値がある場合、前の正規表現が n から m 回繰り返されます。1 つの数値の後にコンマが続く場合、前の正規表現が少なくとも n 回繰り返されます。
このマニュアルには、次の参照例も含まれています。
wh{3}y
Matches ‘whhhy’, but not ‘why’ or ‘whhhhy’.
wh{3,5}y
Matches ‘whhhy’, ‘whhhhy’, or ‘whhhhhy’, only.
wh{2,}y
Matches ‘whhy’ or ‘whhhy’, and so on.
Limiting Repetition
このための優れたオンラインチュートリアル。