如何使用正则表达式抓取句子,避免标记

2024-10-04 05:23:53 发布

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

我有一大堆这样的问题:

<iiiihhiii? (end of line )

我想确保避免使用HTML标记。你知道吗

我试过正则表达式:

<[^>]+\?

使用http://www.pythonregex.com/。你知道吗

以下是输出:

>>> 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?']

没有匹配发生。我怎样才能解决这个问题?你知道吗


Tags: therestringobjectmatchatlistregex
2条回答

您的正则表达式正确地以<开头,但是[^>]匹配不会在?标记处停止,也不会在换行符处停止,因此它将继续匹配,直到找到>字符为止。可能尝试将它更新为<[^>\n?]+\?,这样它将匹配除>、换行符或?问号之外的任何内容,然后当它碰到后面的问号时,您将显式地将它与\?匹配。你知道吗

这对你有用吗?你知道吗

<[^>]+[?]

相关问题 更多 >