Python正規表現:単語の前にスペースとコンマがある場合、または単語が開始単語である場合のみ

恐れ:

このような特定の文字列の場合:

'Rob and Amber Mariano, Heather Robinson, Jane and John Smith, Kiwan and Nichols Brady John, Jimmy Nichols, Melanie Carbone, Jim Green and Nancy Brown, Todd and Sana Clegg with Tatiana Perkin'

「JohnandJane Doe」呼ばれる可能性のあるカップルやその他の家族を特定し、「Jim Green andNancyBrown」などのケース除外したいと思います。

以下を特定したいだけです。

Rob and Amber Mariano, Jane and John Smith, Kiwan and Nicholas Brady John, Todd and Sana Clegg

以下の正規表現のグループは、私が望むほとんどのケースを捕らえているようですが、「ジムグリーン」を除外するのに苦労しています。

最初の単語が名前であるという条件を付けたいのですが、それは文字列の先頭にあるか、その前に空のスペースとコンマだけがあります。

しかし、どういうわけか私の表現は機能していません。([^ |、\ s ']?)がそれをキャプチャすることを期待していましたが、そうではないようです。

([^|\,\s]?)([A-Z][a-zA-Z]+)(\s*and\s*)([A-Z][a-zA-Z]+)(\s[A-Z][a-zA-Z]+)(\s[A-Z][a-zA-Z]+)?
Sandeep Kothari:

これを試してください...期待どおりに完全に機能します

(,\s|^)([A-Z][a-z]+\sand\s[A-Z][a-z]+(\s[A-Z][a-z]+)+)

テストスクリプト:

import re
a=re.findall("(,\s|^)([A-Z][a-z]+\sand\s[A-Z][a-z]+(\s[A-Z][a-z]+)+)","Rob and Amber Mariano, Heather Robinson, Jane and John Smith, Kiwan and Nichols Brady John, Jimmy Nichols, Melanie Carbone, Jim Green and Nancy Brown, Todd and Sana Clegg with Tatiana Perkin")
print(a)

応答:

[('', 'Rob and Amber Mariano', ' Mariano'), (', ', 'Jane and John Smith', ' Smith'), (', ', 'Kiwan and Nichols Brady John', ' John'), (', ', 'Todd and Sana Clegg', ' Clegg')]

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ