正则表达式没有做我想我告诉d的事

2024-09-30 19:32:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个字符串: 转发:MKEQP2B4.BIN

我需要把FW:后面的部分和其他部分分开。因为这只是一个更大的字符串的一部分,对于不同的字符串,FW:的格式可以不同,所以我决定使用regex。你知道吗

我有一个regex FW:.*(\S+).*,但它与我的字符串匹配,但.group(1)只是一个字符“N”。我使用.search()

为什么正则表达式对于如此简单的任务表现得如此古怪。。。你知道吗


Tags: 字符串searchbin格式group字符regexfw
3条回答

您可以尝试下面的正则表达式来获取FW:之后的字符串

>>> import re
>>> str = 'FW:MKEQP2B4.BIN'
>>> m = re.search(r'(?<=FW:).*', str)
>>> m.group()
'MKEQP2B4.BIN'

如果你不想要.BIN部分,那么试试这个

>>> m = re.search(r'(?<=FW:).*?(?=\.)', str)
>>> m.group()
'MKEQP2B4'

这将起作用:

match = re.search(r"FW:(\S+)", subject)
if match:
    result = match.group(1)
else:
    result = ""

the demo中,请参见右窗格中的组1。你知道吗

你的正则表达式完全按照你的命令去做。只是你没有把事情做好。你知道吗

我猜你在寻找:

FW:.*?(\S+).*?

懒惰的那个!你知道吗

实际上你甚至不需要.*?

FW:(\S+)中,$1的结果将是MKEQP2B4.BIN

相关问题 更多 >