python - 正则表达式为什么"\"(反斜杠)需要4个"\"(反斜杠)来转义?
巴扎黑
巴扎黑 2017-04-18 09:54:15
0
3
1050

对于反斜杠"\"为什么不能直接使用"\\"来转义,而是要使用4个反斜杠,这是网上搜出来的一个解释,没有看明白,求解释一下?

与大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠.


Python里的原生字符串很好地解决了这个问题,这个例子中的正则表达式可以使用r"\"表示。同样,匹配一个"\\d"可以写成r"\d"。有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。

巴扎黑
巴扎黑

répondre à tous(3)
小葫芦

En fait, cela a été décrit très clairement. Tout d'abord, cette instruction régulière est une chaîne, et pour exprimer une barre oblique inverse dans une chaîne Python, il faut deux barres obliques inverses, donc en fait, lorsque l'analyseur régulier est donné ici, là. n'est qu'une barre oblique inverse, et dans les expressions régulières, deux barres obliques inverses sont nécessaires pour exprimer une barre oblique inverse, donc un total de quatre sont nécessaires.

黄舟

Les deux premiers et les deux derniers sont utilisés pour échapper aux barres obliques inverses dans les langages de programmation,

est converti en deux barres obliques inverses, puis échappé en une barre oblique inverse dans l'expression régulière.

伊谢尔伦
`r"\"` 会造成语法错的。这样做的目的是,r 字符串通常用于正则,而末尾出现单数个 `\` 的正则是有问题的,所以 Python 的 r 字符串不允许以单数个 `\` 结尾。

D'accord, putain de démarque... Il semble que seulement écrire comme ça rendra les choses normales...

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal