1

次の正規表現があるとします。

^((?:\d+\s)?\w+(?:\s\w+)?)

最初の(最大)2つの単語(数字がある場合は前にある)を抽出するのにうまく機能していますが、ハイフンでつながれた含まれる単語にどのように適応させることができますか?

\-最初の の後に追加しようとしw+ましたが、ハイフンでつながれた単語の前半しか見つかりませんでした。

有効な一致の例は次のとおりです。

  • 1 2
  • 3 4 5
  • 六七八
  • 9 10

それらは住所フィールドの構成要素であるため、どこかにアポストロフィも含まれている可能性があると思いますが、どうすればそれを確認できますか?

4

1 に答える 1

2

[\s\-]の代わりに使用\s

[\s\-]spaceaまたは-..のいずれかに一致します。

だからそうあるべきだ

^((?:\d+[\s\-])?\w+(?:[\s\-]\w+)?)

上記の正規表現は、有効な一致に対しては機能しません。以下に示す正規表現を使用する必要があります


-またはスペースで区切られた複数の単語を一致させるより良い方法は、

^\w+([\s\-]\w+){0,2}$
于 2012-11-14T14:41:55.207 に答える