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?']
<[^>]+[?]