我的文字包含以下结构的字符串:
text I do not care about, persons name followed by two IDs.
我知道:
XYZ
代码开头,后面跟着
二,空格分隔数字。Name
并不总是一个姓氏和名字。它可以是多个姓氏或名字
(想想拉美名字)。所以,我希望提取遵循常量XYZ
代码的字符串,并始终用两个单独的数字终止。
你可以说我的分隔符是XYZ
和两个数字,但数字也必须是提取值的一部分。
这
等等,等等XYZ名字,名字122322 344322 blah blah
我想提取:
姓名,名称122322 344322
有人请建议正则表达式,以便与Python的重新包装一起使用。
答案 0 :(得分:1)
您可以使用此正则表达式
(?<=XYZ\s+)[a-zA-Z\s,]+\d+\s+\d+
---------- ---------- ---------
| | |->matches two numbers separated by space
| |->matches names separated by ,
|->lookbehind assertion which checks for a XYZ followed by space before matching the string
答案 1 :(得分:0)
你可以尝试这种模式:
r"(?<=XYZ )(?:[a-z'-]+,? )+\d+ \d+"
结果是整场比赛。
答案 2 :(得分:0)
(?<=XYZ\s)(\w[^\d]+\d+\s\d+)
您的姓名和号码(\w[^\d]+\d+\s\d+)
前面有XYZ