このような特定の文字列の場合:
'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]+)?
これを試してください...期待どおりに完全に機能します
(,\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]
コメントを追加