我发现这两种说法打印相同的结果:[' ', ' ']
这表明\s
和\\s
在Python的string类相同。实际上当我在Python的交互界面中输入以下代码时,我得到了这个:
所以似乎python會转换\s
为\\s
为什么Python会这样做,这是为了什么在Java等其他语言中是否一样?
实际上我要问的是:在Python中,如果我想匹配空格正则表达式和峩输入的字符串都可以"\s"
,对吧但是,在Java中正则表达式应该是"\s"
,而String应该是"\\s"
这两种语言似乎对字符串“\ s”的处理方式不同。为什么
Python中字符串前面加上 r 表示原生字符串与大多数编程语言相同,正则表达式里使用"\"作为转义字符这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\"那么使用编程語言表示的正则表达式里将需要4个反斜杠"\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里轉义成一个反斜杠
Python里的原生字符串很好地解决了这个问题,有了原生字符串你再也不用担心是不是漏写了反斜杠,写出来的表达式也哽直观
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。