在Python中,如何编写字符串=”呢\s";?
为什么:在Python中,如何编写字符串=”呢\s";?,python,regex,string,escaping,Python,Regex,String,Escaping,为什么: B = "The" + "\s" 及 产量: "The\\s" 是否可以写入上述内容,以便输出字符串为: "The\s" 关于反斜杠的问题、反斜杠转义的属性以及Python中正则表达式字符的解释,我都读过类似的问题 这是否意味着没有办法写出我想要的 如果有用,我的最终目标是编写一个程序,将空格(\s)的正则表达式添加到字符串中,其中该空格: 例如,从以下内容开始: A = "The Cat and Dog" 应用该功能后,将变为: B = "The\sCat\sand\sD
B = "The" + "\s"
及
产量:
"The\\s"
是否可以写入上述内容,以便输出字符串为:
"The\s"
关于反斜杠的问题、反斜杠转义的属性以及Python中正则表达式字符的解释,我都读过类似的问题
这是否意味着没有办法写出我想要的
如果有用,我的最终目标是编写一个程序,将空格(\s)的正则表达式添加到字符串中,其中该空格:
例如,从以下内容开始:
A = "The Cat and Dog"
应用该功能后,将变为:
B = "The\sCat\sand\sDog"
您必须退出“\”
请参见转义序列部分:
我相信这与另一个有关 字符串的表示形式和它实际包含的内容可能有所不同 注意:
>>> B = "The" + "\s"
>>> B
'The\\s'
>>> print B
The\s
此外
>>> A = "The Cat and Dog"
>>> B = str.replace(A, ' ', '\s')
>>> B
'The\\sCat\\sand\\sDog'
>>> print B
The\sCat\sand\sDog
发件人:
字符串中所有未识别的转义序列保持不变,即结果中保留反斜杠
因此,虽然
\s
不是一个正确的转义序列,但Python会原谅您的错误,并将反斜杠视为已正确转义为\
。但当您查看字符串的表示形式时,它会显示正确转义的反斜杠。也就是说,字符串只包含一个反斜杠。只有表示法将其显示为带有两个转义序列。B=“the”+“\\s”
?对于函数:B=s.replace(“,“\\s”)
也给出了'the\\s'B=A.replace('''''\s')
,B=A.replace('''''\\s')
是等价的,而B
是您想要的正则表达式。这仍然会产生:“the\\s”在空闲状态下尝试一下,您会看到。@emKaroly Python 2.0从15年前就已经过时了,我不会链接到它。正如Stefan Pochmann解释的,这里没有必要转义反斜杠,因为\s
不是Python字符串转义序列(尽管它是Python“re”模块regex转义序列)。但是更清楚的是,要么转义它,要么使用原始字符串。@StefanPochmann你是对的:)我链接了一个较新的文档。你忘记了B=str.replace(a,,,'\s'
.OTOH,B=a.replace(''''.\s')
更惯用,尽管我可能会把它写成B=a.replace('''.\\s'))
或B=A.replace('',r'\s')
为了明确替换字符串包含两个字符-一个反斜杠和一个's'
。哎呀……我会更正右大括号,但是是的,您的替换更好谢谢您帮助突出显示您在字符串中编写的内容与Python解释字符串的方式之间的差异。看来我完全可以做到这一点我需要这些信息。谢谢:)
>>> B = "The" + "\s"
>>> B
'The\\s'
>>> print B
The\s
>>> A = "The Cat and Dog"
>>> B = str.replace(A, ' ', '\s')
>>> B
'The\\sCat\\sand\\sDog'
>>> print B
The\sCat\sand\sDog