MYG*_*YGz 2 python regex python-2.7
我正在尝试匹配文字字符串 '\$'。我通过反斜杠转义了 '\' 和 '$'。为什么当我转义模式中的反斜杠时不起作用?但是如果我使用一个点,那么它就起作用了。
import re
print re.match('\$','\$')
print re.match('\\\$','\$')
print re.match('.\$','\$')
Run Code Online (Sandbox Code Playgroud)
输出:
None
None
<_sre.SRE_Match object at 0x7fb89cef7b90>
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下内部发生了什么吗?
您应该为此使用re.escape()函数:
转义(字符串)
返回所有非字母数字反斜杠的字符串;如果您想匹配可能包含正则表达式元字符的任意文字字符串,这将非常有用。
例如:
import re
val = re.escape('\$') # val = '\\\$'
print re.match(val,'\$')
Run Code Online (Sandbox Code Playgroud)
它输出:
<_sre.SRE_Match object; span=(0, 2), match='\\$'>
Run Code Online (Sandbox Code Playgroud)
这相当于@TigerhawkT3他的回答中提到的。
| 归档时间: |
|
| 查看次数: |
1706 次 |
| 最近记录: |