3

次の要件を満たす文字列に対して正規表現を作成しています。

  1. 文字列には、最大5セットの英数字が含まれます。
  2. 文字列内の各セットは、SINGLE空白文字で区切られます。

たとえば、「asa22dasdcac3」または「Asdcd234sacasW2 sas1 s sd1」を使用できます(画像が表示されることを願っています)。これまでのところ:

^[A-z 0-9]\s{0,1}

\wアンダースコアが許可されているため、使用していません。これは1セットの文字に対して機能しますが、スペースで区切られた同じ種類の文字列の5セットを許可する必要があります。

どうやってやるの?

4

2 に答える 2

3

使用している言語はまだ言っていませんが、これでうまくいくはずです。

^[A-Za-z0-9]+(\s[A-Za-z0-9]+){0,4}$

単語の後に、最大4つのspace-then-wordのインスタンスが続きます。

于 2012-07-15T13:26:44.273 に答える
0

必要なツール

正規表現内のパターンの複数のインスタンスを照合するには、正規表現エンジンで許可されている一致グループ、後方参照、および間隔式の任意の組み合わせを使用できます。

サンプルコードに基づいて、正規表現エンジンは明らかに間隔をサポートしているので、それを使用してください。目標を達成するための2つの例を次に示します。

# Use POSIX character classes with an interval expression
^([[:alnum:]]+[[:space:]]?){1,5}$

# PCRE expression with intervals
\A(\p{Xan}+\s?){1,5}\Z
于 2012-07-15T13:58:49.703 に答える