作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例子:
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/
我是一名优秀的程序员,十分优秀!