gpt4 book ai didi

python - 正则表达式行以字符集开头

转载 作者:太空狗 更新时间:2023-10-29 17:03:02 25 4
gpt4 key购买 nike

假设我想搜索出现在行首或后跟“a”的“b”。

为什么 re.match('[\^a]b','b') 不匹配而 re.match('^b','b') 是吗?

更新:我意识到我应该使用search 而不是match。我希望它对诸如“b”、“cab”、“ab”、“bc”和“abd”之类的事物是积极的。

最佳答案

正则表达式 [\^a]b 将匹配 ab^b,因此它不应匹配字符串 'b'.

请注意,re.match() 仅匹配字符串的开头,就好像您在正则表达式的开头有一个字符串 anchor 的开头 (^\A 启用多行选项)。

因此“要搜索出现在行首或后跟‘a’的‘b’”,您需要使用带有以下正则表达式的 re.search():

(^|a)b

请注意,我对此的解释与其他答案略有不同,我认为您的要求意味着您也想匹配 'bob' 中的 'b'作为 'taboo' 中的 ab,所以行首要求仅适用于 b 且前面没有 a.

这种在组中交替的方法为您提供了比 ^b|ab 更具可扩展性的解决方案,因此要在字符串的开头或前面匹配 b ax25 您可以使用以下内容:

(^|[ax25])b

关于python - 正则表达式行以字符集开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13199118/

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