new Regex(@"^[a-zA-Z]+\b +\b[a-zA-Z]?\b +\b[a-zA-Z]+$")
これは一致します
John Smith
John B Goode
次の場合に備えて、この正規表現を変更しようとしています。
いくつかのテキストの前に12359 (John B? Goode) 10249?
つまり、名前は、文字列の末尾の数字の後に、オプションで末尾の最後の数字の前に来ることがあります。
私が試してみました
new Regex(@"^|[0-9]+([a-zA-Z]+\b +\b[a-zA-Z]?\b +\b[a-zA-Z]+) *[0-9]*?$")
しかし、それは機能しません
^|[0-9]+
行頭ではなく数字のみに一致する- グループは常に空の文字列で、次のようなものに一致します
sometext 12354
(最初の数字は行末にある必要はありません。
アップデート
これはすべて橋の下の水です。データ行の最後にさらに名前が見つかったため、これは機能しません。
しかし、私の問題の解決策は、グループに OR を投げることではありませんでした。