我有这个字符串: FW:MKEQP2B4.BIN
我需要在FW之后将其分开:从其余部分开始。因为这只是一个更大字符串的一部分而且对于不同的字符串,FW:格式不同我决定使用正则表达式。
我有这个正则表达式FW:.*(\S+).*
但它匹配我的字符串,但.group(1)
只是一个字符' N'。我使用.search()
为什么正则表达式对于这样看似简单的任务表现得如此奇怪......
答案 0 :(得分:3)
你的正则表达式完全按照你的要求去做。只是你说得不对。
我猜你在找:
FW:.*?(\S+).*?
懒惰的人!
因为你甚至不需要.*?
FW:(\S+)
,$ 1的结果为MKEQP2B4.BIN
答案 1 :(得分:1)
这样可行:
match = re.search(r"FW:(\S+)", subject)
if match:
result = match.group(1)
else:
result = ""
在the demo中,请参阅右侧窗格中的第1组。
答案 2 :(得分:0)
您可以尝试使用以下正则表达式获取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'