1

Grailsはかなり新しいので、正規表現を使用した一致の検証に問題があります。私が望んでいたのは、私のフィールドは英数字と、ピリオド(。)、コンマ(、)、ダッシュ(-)などの特定の特殊文字の組み合わせを受け入れることができ、数字(099)または文字のみ(alpha)を受け入れることができるということですが、特殊文字( ".-、")のみを含む入力は受け付けません。正規表現を使用してこの種の入力をフィルタリングすることは可能ですか?助けてください。知識を共有していただきありがとうございます。

4

2 に答える 2

4
^[0-9a-zA-Z,.-]*?[0-9a-zA-Z]+?[0-9a-zA-Z,.-]*$

meaning:
  /
  ^          beginning of the string
  [...]*?    0 or more characters from this class (lazy matching)
  [...]+?    1 or more characters from this class (lazy matching)
  [...]*     0 or more characters from this class
  $          end of the string
  /
于 2012-03-08T09:15:43.853 に答える
1

これを次のような正規表現と一致させることができると思います。

".*[0-9a-zA-Z.,-]+.*"

つまり、次のことを意味します。

「。」 任意の文字で開始

"*"これらの文字が0個以上ある

"[0-9a-zA-Z。、-]" 0-9、azなどの範囲の文字、または。または、または-

"+" この種の文字を1つ以上持っている(したがって、このセットに1つ持っている必要があります)

「。」 任意の文字で終了

"*" これらの文字が0個以上ある

これは私にとっては問題なく機能しています。お役に立てば幸いです。

于 2012-03-08T08:45:24.703 に答える