Python 如何使用正则表达式抓取句子,避免标记
我有一大堆这样的问题:Python 如何使用正则表达式抓取句子,避免标记,python,regex,Python,Regex,我有一大堆这样的问题: <iiiihhiii? (end of line ) regex=re.compile(“]+/?”,re.UNICODE | re.DOTALL | re.VERBOSE) >>>r=regex.search(字符串) >>>r >>>regex.match(字符串) #列出找到的组 >>>r.团体() () #列出找到的命名字典对象 >>>r.groupdict() {} #跑芬德尔 >>>regex.findall(字符串) 这对你有用吗 &
<iiiihhiii? (end of line )
regex=re.compile(“]+/?”,re.UNICODE | re.DOTALL | re.VERBOSE)
>>>r=regex.search(字符串)
>>>r
>>>regex.match(字符串)
#列出找到的组
>>>r.团体()
()
#列出找到的命名字典对象
>>>r.groupdict()
{}
#跑芬德尔
>>>regex.findall(字符串)
这对你有用吗
<[^>]+[?]
]+[?]
您的正则表达式正确地以
]
匹配不会在?
标记处停止,也不会在换行符处停止,因此它将继续匹配,直到遇到
字符为止。也许可以尝试将它更新为\n?]+\?
,这样它就可以匹配除
、换行符或?
问号以外的任何内容,然后当它碰到后面的问号时,您可以显式地将它与\?
匹配。这似乎有效-我最初犯了一个错误,得到了错误的输出。我在上面改了。很抱歉
>>> regex = re.compile("<[^>]+/?",re.UNICODE|re.DOTALL|re.VERBOSE)
>>> r = regex.search(string)
>>> r
<_sre.SRE_Match object at 0x87e2915436c23d50>
>>> regex.match(string)
<_sre.SRE_Match object at 0x87e2915436c23da8>
# List the groups found
>>> r.groups()
()
# List the named dictionary objects found
>>> r.groupdict()
{}
# Run findall
>>> regex.findall(string)
[u'<jghjhgjhgjh?']
<[^>]+[?]