「Johnson」、「Del Sol」、または「Del La Range」に一致する C# の正規表現が必要です。つまり、中間にスペースがあり、先頭または末尾にスペースがない単語に一致する必要があります。
12626 次
7 に答える
5
^\p{L}+(\s+\p{L}+)*$
この正規表現には次の機能があります。
- 1 文字の姓に一致します (例: Malcolm X の姓)
- 数字を含む姓には一致しません (a
\w
または[^ ]
will のあるものなど) 。 - ユニコード文字に一致
しかし、「O'Connor」やハイフンでつながれた姓などの姓はどうでしょう...うーん...
于 2009-03-10T21:33:49.033 に答える
3
これは仕事をするはずです:
^[a-zA-Z][a-zA-Z ]*[a-zA-Z]$
編集:これは、名前に後者の名前とハイフン/アポストロフィを許可するわずかな改善です。
^[a-zA-Z'][a-zA-Z'- ]*[a-zA-Z']?$
于 2009-03-10T21:26:39.330 に答える
0
? 修飾子はあなたの友達です。貪欲なマッチではなく、可能な限り最短のマッチを行います。次のように、名に使用します。
^(.+?) (.+)$
グループ 1 は最初のスペースまですべてを取得し、グループ 2 は残りを取得します。
もちろん、名にスペースが含まれている場合はどうしますか?
于 2009-03-10T21:21:33.727 に答える
0
これはより良いものです:
/^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*$/
標準の句読点とスペースを使用できますが、句読点で始めることはできません。
于 2012-05-10T16:31:54.387 に答える
0
次のようなことを試してください:
^[^\s][\w\s]*[^\s]$
于 2009-03-10T21:25:20.630 に答える
-1
これはあなたが探していたものだと思います:
^[^ ][a-zA-Z ]+[^ ]$
これは、スペース、英字またはスペースなしで行頭と一致し、最後にスペースがない必要があります。
これは irb で動作しますが、前回 C# を使用したときは、同様の正規表現を使用しました。
(ゼロは良い、nil は失敗を意味する)
>> "Di Giorno" =~ /^[^ ][a-zA-Z ]+[^ ]$/
=> 0
>> "DiGiorno" =~ /^[^ ][a-zA-Z ]+[^ ]$/
=> 0
>> " DiGiorno" =~ /^[^ ][a-zA-Z ]+[^ ]$/
=> nil
>> "DiGiorno " =~ /^[^ ][a-zA-Z ]+[^ ]$/
=> nil
>> "Di Gior no" =~ /^[^ ][a-zA-Z ]+[^ ]$/
=> 0
于 2009-03-10T21:35:16.313 に答える