[英]Extract substr starting with TICKET# from string
我正在尝试从电子邮件回复主题消息中提取票证编号。 主题消息通常如下所示:
s = 'Re: Test something before TICKET#ABC123 hello world something after'
我想提取部分TICKET#ABC123
如何在Python中做到最好? 这是我的目标之路,还是您有更好的建议来跟踪邮件链?
没有正则表达式(使用split()
和startswith()
):
s = 'Re: Test something before TICKET#ABC123 hello world something after'
splitted = s.split()
for x in splitted:
if x.startswith('TICKET#'):
print(x)
# TICKET#ABC123
: 您可以使用以下 :
import re
s = 'Re: Test something before TICKET#ABC123 hello world something after'
re.findall(r'TICKET#[a-zA-Z0-9]+(?=\s)', s)
# ['TICKET#ABC123']
说明:
r'TICKET#
-逐字匹配字符r'TICKET#(区分大小写)
[a-zA-Z0-9]
-匹配[a-zA-Z0-9]中存在的单个字符
+
-量词在一次和无限次之间进行匹配,并尽可能地多次匹配,并根据需要返回(贪婪)
(?=\\s)
-正前瞻(?= \\ s)
\\s
匹配任何空格字符(等于[\\ r \\ n \\ t \\ f \\ v])
使用正则表达式。
例如:
import re
s = 'Re: Test something before TICKET#ABC123 hello world something after'
m = re.search(r"TICKET#(\w+)", s)
if m:
print(m.group(1))
输出:
ABC123
无法评论@Rakesh。
但是我们需要稍微修改一下正则表达式,因为预期结果是TICKET#ABC123
例如 :
import re
s = 'Re: Test something before TICKET#ABC123 hello world something after'
m = re.search(r"(TICKET#(\w+))", s)
if m:
print(m.group(1))
输出 :
TICKET#ABC123
如果您想获取票号,则可以使用
m.group(2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.