如何匹配python中单词第一次出现后的部分

2024-05-12 19:46:35 发布

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

例如,输入字符串:

In North Dighton, there's a Flash Flood Watch in effect until Wednesday, July 12, 9:00 PM.

我想把下面的字符串提取出来

North Dighton

所以我写python代码如下:

found_group = re.search('(.*)in (.*?),(.*)', "In North Dighton, there's a Flash Flood Watch in effect until Wednesday, July 12, 9:00 PM.", re.IGNORECASE)

fround_group.group(2)

但是它输出:

effect until Wednesday

如何只匹配第一个“in”和第一个逗号之间的部分

注意,第一个“in”可能不是行中的第一个单词。


Tags: 字符串ingroupjulyflashwatchuntilthere
2条回答

t=“在北迪格顿,有一个有效的洪水观测,直到7月12日星期三晚上9:00”

import re
re.search(r'In (.+?),', t).group(1)

o/p公司

'北迪格顿'

您必须使用否定字符类来不匹配,,而是匹配任何字符。因为正则表达式中的.*是贪婪的,在找到匹配之前,它不会吃掉任何字符,或者使.*.*?一样不贪婪

found_group = re.search('([^,]*)in ([^,]*),(.*)', "In North Dighton, there's a Flash Flood Watch in effect until Wednesday, July 12, 9:00 PM.", re.IGNORECASE)
fround_group.group(2)

Demo 1Demo 2

相关问题 更多 >