示例:
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"
。为什么字边界需要双反斜杠?
答案 0 :(得分:11)
\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