gpt4 book ai didi

python - 正则表达式 - 将字符串中的\\n 和\n 替换为
而不是\\\\n

转载 作者:行者123 更新时间:2023-12-04 12:03:41 26 4
gpt4 key购买 nike

我正在尝试替换所有 \\n\n来自 <br> 的字符串但我不想要 \\\\n将被替代。

我尝试使用负向后视的以下表达式,但它没有返回正确的结果,因为所有 "n""\"被替换:

import re
string = "this is a sample\\nstring\\\\ncontaining\nall cases\n\\n\n!"
re.sub(r"(?<!\\)([\\n\n]+)", r"<br>", string)
>>'this is a sample<br>stri<br>g<br>co<br>tai<br>i<br>g<br>all cases<br>!'

预期产出
"this is a sample<br>string\\\\ncontaining<br>all cases<br><br><br>!"

最佳答案

这将发挥魔力:

re.sub(r"(?<!\\)\\n|\n", "<br>", string)

注意:它将替换换行符 ("\n") 和转义的换行符 ("\n"或 r"\n")。它不会转义 "\\n"(或 r"\n")。
“\\\n”(反斜杠 + 新行)变为“\\< br>”。

也许,你真正想要的是:
re.sub(r"(?<!\\)(\\\\)*\\n|\n", "\1<br>", string)

这将替换所有新行和所有转义 n (r"\n")。 r"\\n"不会被替换。 r"\\\n"再次被替换(转义的反斜杠 + 转义的 n)。

关于python - 正则表达式 - 将字符串中的\\n 和\n 替换为 <br> 而不是\\\\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48949604/

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