gpt4 book ai didi

python - 为什么正则表达式可以理解没有 r 前缀的\n?

转载 作者:太空宇宙 更新时间:2023-11-03 16:26:56 25 4
gpt4 key购买 nike

我已经阅读了很多问题来寻找答案,如果我错过了,抱歉。

假设我有一个仅包含换行符的文本。
text ='\n'

因为正则表达式使用反斜杠字符('\')来转义特殊含义的字符(例如 Python),所以我们将使用原始字符串表示法来匹配换行符,就像这样 answer建议。 (如有错误请指正)

所以我们会做 regex = re.compile(r'\n') ,正则表达式解析器可以读取反斜杠和字符“n”并将其解释为换行符。

My question is why does regex = re.compile('\n') also work too?

我尝试做regex.match(text)结果是<_sre.SRE_Match object; span=(0, 1), match='\n'> ,与原始字符串表示法相同。


是不是因为here写的文档?其中说:

Most of the standard escapes supported by Python string literals are also accepted by the regular expression parser: \a \b \f \n \r \t \v \x \\

谁能详细解释一下吗?

最佳答案

r'\n' 抑制字符串文字的解释。这样,它包含两个字符 '\''n'。这两个字符被正则表达式引擎解释为换行序列。在第二种情况下,'\n' 首先被转换为换行序列(即基于 Unix 的系统上的 LF,即一个字符;或者在 Windows 上转换为 CR LF,即两个字符) ,...)。正则表达式编译器将其视为显式给定的字符(没有反斜杠,没有特殊解释)。

关于python - 为什么正则表达式可以理解没有 r 前缀的\n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37900783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com