gpt4 book ai didi

python - 为什么单词边界正则表达式使用双反斜杠,而其他表达式使用单反斜杠?

转载 作者:行者123 更新时间:2023-11-28 19:46:51 24 4
gpt4 key购买 nike

例子:

def searchResult(expr, inputStr):
if (re.search(expr, inputStr)):
return True
return False

print(searchResult("\s", "the quick brown fox")) # True
print(searchResult("\bfox", "the quick brown fox")) # False
print(searchResult("\\bfox", "the quick brown fox")) # True

我需要双反斜杠 "\\b" 作为单词边界,但对于空白字符只需要单反斜杠 "\s" 即可。为什么单词边界需要双反斜杠?

最佳答案

\b 有一个特殊的含义:它是退格字符。 \s 和许多其他 \<something> 序列没有特殊含义,因此 \ 然后被解释为文字斜杠。

>>> '\b'
'\x08'
>>> print('123\b456')
12456
>>> '\s'
'\\s'
>>> print('\s')
\s
>>> print('\b')

>>> # nothing visible printed above

为了使事情变得更简单,在编写正则表达式时通常应该使用原始字符串文字。这通常可以防止 \ 被解释为 Python 字符串意义上的转义字符,以便它在您的正则表达式中正常工作。例如:

>>> r'\b'
'\\b'
>>> print(r'\b')
\b

关于python - 为什么单词边界正则表达式使用双反斜杠,而其他表达式使用单反斜杠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50496846/

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