gpt4 book ai didi

python - 正则表达式排除特定字符串

转载 作者:太空宇宙 更新时间:2023-11-03 19:12:56 27 4
gpt4 key购买 nike

我在这里阅读了一些帖子,但他们无法帮助我解决我的问题:

您可以阅读下面的正则表达式,它试图匹配排除特定字符串“个人资料图片”的地方。如果表达式的起始字符串不是“个人资料图片”,我想匹配所有其他情况,但它不不起作用:

re.compile(r"(?!Profile Pictures)</strong></a><div class=\"photoTextSubtitle fsm fwn fcg\">(\d+) photos</div>")

返回匹配的数字(\d+),但“头像”仍算作其中之一。我尝试了不同的方法,但没有一个有效。但是,我仍然认为消极前瞻是解决问题的方法。有任何想法吗?谢谢!

最佳答案

您正在使用(?!...或根据 python regex documentation否定前瞻断言

Matches if ... doesn’t match next. This is a negative lookahead assertion. For example, Isaac (?!Asimov) will match 'Isaac ' only if it’s not followed by 'Asimov'.

在这种情况下,您想要的是 (?<!...这是一个否定的后向断言。这是因为您试图避免匹配位于您要匹配的文本之前而不是之后的文本。来自正则表达式文档:

Matches if the current position in the string is not preceded by a match for .... This is called a negative lookbehind assertion. Similar to positive lookbehind assertions, the contained pattern must only match strings of some fixed length. Patterns which start with negative lookbehind assertions may match at the beginning of the string being searched.

这会给你一个看起来像这样的正则表达式:

re.compile(r"(?<!Profile Pictures)</strong></a><div class=\"photoTextSubtitle fsm fwn fcg\">(\d+) photos</div>")

当然,如果没有您的一些示例,很难对此进行测试。

关于python - 正则表达式排除特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12345125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com