我想获得紧跟My Text Content
之后的AB.00.000
。
我可以使用下面的正则表达式来获得这个AB.00.000
([A-Z]{2,3}\.[0-9]{2}\.[0-9]{3})
如何在Python中获取AB.00.000
旁边的文本?
这是输入字符串:
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard
AB.00.000 My Text Content
$!#"!
23:50
My Phone
答案 0 :(得分:1)
似乎您希望在找到样式后获得整行的内容。
您可以使用
r'\b[A-Z]{2,3}\.[0-9]{2}\.[0-9]{3}\b\s*(.*)'
请参见regex demo。请注意,\b
是一个单词边界,要求在单词char(或字符串的开头/结尾)之前或之后的字母/数字/ _
以外的其他字符。
\s*(.*)
是您的解决方案严重缺失的地方:
\s*
-超过0个空格(.*)
-捕获组#1:除换行符以外的任何0个或更多字符,应尽可能多,即行的其余部分。如果模式必须位于行的开头,则用于提取所需文本的正则表达式将看起来像
r'(?m)^[A-Z]{2,3}\.[0-9]{2}\.[0-9]{3}\b\s*(.*)'
请参见another regex demo。 (?m)
(= re.M
选项)使^
匹配行的开头,而不仅仅是整个字符串的开头,位置。
Python:
m = re.search(r'\b[A-Z]{2,3}\.[0-9]{2}\.[0-9]{3}\b\s*(.*)')
if m:
print(m.group(1))
请注意,要访问比赛的第一个(也是此处唯一的)括号部分,您需要通过.group(1)
访问比赛组。