我有以下字符串:
'Commenter:\n\sabc\n<!-- one -->\ntext1<!-- two -- -- -->\ntext2<!-- three -->text3\nCommenter'.
最初,我试图用这个regexp re.findall ( '<!--(.*?)-->', string, re.DOTALL)
提取所有注释,它给了我正确的输出[' one ', ' two -- -- ', ' three ']
然后,我尝试使用以下regexp获取特定用户“abc”的注释:re.findall ( 'Commenter.*abc.*<!--(.*?)-->.*Commenter', string, re.DOTALL)
,但只得到[' three ']
我无法理解输出。有人能帮忙吗
您只需要在regex中创建第一个和第二个
.*
,以进行尽可能短的匹配。这可以通过在*
之后添加一个不情愿的量词?
来实现也许有一种更聪明的方法可以做到这一点,但我会使用两个正则表达式,如下所示:
相关问题 更多 >
编程相关推荐