【发布时间】:2013-03-31 03:14:23
【问题描述】:
我在将字符串与正则表达式匹配时遇到问题(我对正则表达式没有经验)。我有一个字符串,它在每个单词和一个标签之后都包含一个正斜杠。一个例子:
led/O by/O Timothy/PERSON R./PERSON Geithner/PERSON ,/O the/O president/O of/O the/O New/ORGANIZATION
在这些字符串中,我只对/PERSON 之前的所有字符串感兴趣。这是我想出的正则表达式模式:
(\w)*\/PERSON
还有我的代码:
match = re.findall(r'(\w)*\/PERSON', string)
基本上,我匹配/PERSON 之前的任何单词。输出:
>>> reg
['Timothy', '', 'Geithner']
我的问题是第二个匹配,匹配一个空字符串,如R./PERSON,点不是单词字符。我将正则表达式更改为:
match = re.findall(r'(\w|.*?)\/PERSON', string)
但现在的比赛是:
['led/O by/O Timothy', ' R.', ' Geithner']
它会获取第一个 /PERSON 之前的所有内容,其中包括 led/O by/O 而不仅仅是匹配 Timothy。有人可以帮助我如何进行这种匹配,同时包括一个句号作为缩写吗?或者至少,没有空字符串匹配?
谢谢,
【问题讨论】: