>> print re.findall(re.escape('?and'), -6ren">
gpt4 book ai didi

python - 如何匹配其中包含正则表达式语法的字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:09 25 4
gpt4 key购买 nike

假设我有一个像

这样的字符串
x = "spam ?and eggs"

我正在尝试匹配 "?and"。目前我是这样做的:

>>> print re.findall(re.escape('?and'), x)
['?and']

这是 re.escape 的正确用例吗?它是否可以与我正在寻找的任何其他字符串文字一起使用,其中可能包含其他类型的正则表达式语法?

我的用例是 pexpect.spawn.expect(pattern) 中的参数,其中输入模式可以是字符串类型,它被编译成正则表达式。在某些情况下,我正在搜索的内容可能看起来像一个正则表达式,但它实际上是我想要匹配的字符串文字。

最佳答案

是的,这正是 re.escape 的正确用例 — the documentation说“如果你想匹配其中可能包含正则表达式元字符的任意文字字符串,它很有用”——尽管在你的第一个例子中,我认为使用以下任何一种方法自己转义问号要简单一些:

re.findall(r'\?and', x)          # \? in a raw string literal
re.findall('\\?and', x) # \? in a non-raw string literal, so, \\?
re.findall('[?]and', x) # "cheat" by using a character class

关于python - 如何匹配其中包含正则表达式语法的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713129/

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