使用regex检查字符串是否以某个结尾

2024-05-29 04:40:27 发布

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

我想检查一堆草堆是否以一根针结束,其中包含了一些更改的文本。在

这是我试过的,显示的是“sre”_常量.错误:无需重复“错误:

import re

string = 'stuff ... </div> <img src="..." title"SOME_TEXT_THAT_CHANGES">'

pattern = r'/<\/div> <img src="..." title"(*.)">$/'

prog = re.compile(pattern)
result = prog.match(string)

print result

Tags: 文本importdivresrcimgstringtitle
2条回答

将regex更改为:

r'<\/div> <img src="[.]{3}" title"(.*)">$'
  1. .在regex中有特殊的含义,因此应该使用字符类或使用\对其进行转义。

  2. 在Python中,不需要在/ /之间括起regex。

  3. *.应该是.*

  4. re.match只匹配字符串的开头,所以最好使用re.search。(^{} vs ^{}

演示:

^{pr2}$

应该是这样的:

>>> import re
>>> string = 'stuff ... </div> <img src="..." title"SOME_TEXT_THAT_CHANGES">'
>>> pattern = r'</div> <img src="..." title"(.*)">$'
>>> prog = re.compile(pattern)
>>> result = prog.search(string)
>>> result
<_sre.SRE_Match object at 0x0188A3A0>
>>> print result.group(1)
SOME_TEXT_THAT_CHANGES
>>>

现在让我回顾一下我所做的改变:

  1. 模式需要将*.更改为.*(这就是导致错误的原因)。在
  2. 这里需要使用re.search,它在字符串中搜索模式,而不是寻找完全匹配的re.match。在
  3. 在Python正则表达式的开头和结尾不需要/。在
  4. /不需要在</div>中转义

相关问题 更多 >

    热门问题