2024-07-07 07:49:41 发布
网友
我正在尝试从电子邮件回复主题消息中提取票号。主题消息通常如下所示:
s = 'Re: Test something before TICKET#ABC123 hello world something after'
我想提取部分TICKET#ABC123
TICKET#ABC123
如何在Python中实现这一点?这是我要走的路还是你有更好的建议来跟踪邮件链?你知道吗
使用正则表达式。你知道吗
例如:
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
您可以使用以下正则表达式:
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#字面意思(区分大小写)
r'TICKET#
[a-zA-Z0-9]-匹配[a-zA-Z0-9]中的单个字符
[a-zA-Z0-9]
+-量词在一次和无限次之间匹配,尽可能多地匹配,根据需要回馈(贪婪)
+
(?=\s)-正向前瞻(?)?=\s)
(?=\s)
\s-匹配任何空格字符(等于[\r\n\t\f\v])
\s
没有regex(使用split()和startswith()):
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
使用正则表达式。你知道吗
例如:
输出:
您可以使用以下正则表达式:
说明:
r'TICKET#
-匹配字符r'TICKET#字面意思(区分大小写)[a-zA-Z0-9]
-匹配[a-zA-Z0-9]中的单个字符+
-量词在一次和无限次之间匹配,尽可能多地匹配,根据需要回馈(贪婪)(?=\s)
-正向前瞻(?)?=\s)\s
-匹配任何空格字符(等于[\r\n\t\f\v])没有regex(使用
split()
和startswith()
):相关问题 更多 >
编程相关推荐