2

文字列の長さが 7 で、母音、数字の 0 と数字の 1 が含まれていないことを検証する正規表現が必要です。

私は次のような文字クラスについて知って[a-z] いますが、そのようにすべての可能性を指定しなければならないのは面倒です:[2-9~!@#$%^&*()b-df-hj-np-t...]

例えば:

  • 文字列を渡すJune2013と、文字列の長さが 8 で、2 つの母音と数字 0 と 1 が含まれているため、失敗するはずです。

  • 文字列を渡すと、XYZ20030 が含まれているため失敗するはずです。

  • 文字列を渡すと、合格するXYZ2223はずです。

前もって感謝します!

4

2 に答える 2

7

したがって、次のようになります。

^[^aeiouAEIOU01]{7}$

アンカーは^$、指定したもの以外に何も含まれていないことを保証します。文字クラス[^...]は、リストされているものを除くすべての文字を{7}意味し、正確に 7 つの文字を意味します。

これは英語の母音の定義に従っていますが、他の文化では、何が母音を構成するかについて異なる考えを持っている可能性があります.

テスト データに基づく結果は次のとおりです。

pax> echo 'June2013' | egrep '^[^aeiouAEIOU01]{7}$'
pax> echo 'XYZ2003' | egrep '^[^aeiouAEIOU01]{7}$'
pax> echo 'XYZ2223' | egrep '^[^aeiouAEIOU01]{7}$'
XYZ2223
于 2013-06-26T05:56:27.790 に答える
0

これを表現する最も簡単な方法は次のとおりです。

(?i)^[^aeiou01]{7}$

この用語(?i)は「大文字と小文字を区別しない」という意味で、母音の大文字と小文字の両方を入力する必要がありません。

于 2013-07-01T05:06:38.353 に答える