2024-09-29 23:31:40 发布
网友
如何删除转义和转义换行符、制表符和回车符等
sentence = "\ndirty string \n \\n \\\\n \t\\t\\\\t \r\\r\\\\r"
一个经典的暴力方法是
" ".join(sentence.split())
但转义字符仍然存在:
"dirty string \\n \\\\n \\t\\\\t \\r\\\\r"
如何转换字符串,使其看起来像:
"dirty string"
sentence = "\ndirty string \n \\n \\\\n \t\\t\\\\t \r\\r\\\\r"\ print(''.join(s for s in sentence if (s.isalnum() or (s == ' ')))) # Output: dirty string n n tt rr
看了你的句子,有些信没有漏掉。我在可以看到的转义字符周围放了括号:
"(\n)dirty string (\n) (\\)n (\\)(\\)n (\t)(\\)t(\\)(\\)t (\r)(\\)r(\\)(\\)r"
在此字符串文字中,括号外的任何字符都没有被转义,您应该考虑是否真的要将它们扔掉。
使用正则表达式模式,如(\\n|\\r|\\t|\\)
(\\n|\\r|\\t|\\)
输入:
带:
import re x = re.sub(r"(\\n|\\r|\\t|\\)", "", sentence).strip()
结果:
'dirty string'
例如,\n是转义字符,而\\n不是。这就是为什么在sentence.split()之后留下像\\n \\\\n \\t\\\\t \\r\\\\r这样的字符串
\n
\\n
sentence.split()
\\n \\\\n \\t\\\\t \\r\\\\r
这将返回所需的输出:
result=" ".join(word for word in sentence.split() if not word.startswith("\\"))
它将句子分解为单词,将任何前导或尾随空格分隔开,但只考虑不以反斜杠开头的单词。记住\\n不是转义字符,而是文本字符串\n的表示
顺便说一句,我不会称您的尝试为“暴力”,因为像split()、strip()、join()、replace()等字符串函数正是为了解决这类问题
split()
strip()
join()
replace()
看了你的句子,有些信没有漏掉。我在可以看到的转义字符周围放了括号:
在此字符串文字中,括号外的任何字符都没有被转义,您应该考虑是否真的要将它们扔掉。
使用正则表达式模式,如
(\\n|\\r|\\t|\\)
输入:
带:
结果:
例如,
\n
是转义字符,而\\n
不是。这就是为什么在sentence.split()
之后留下像\\n \\\\n \\t\\\\t \\r\\\\r
这样的字符串这将返回所需的输出:
它将句子分解为单词,将任何前导或尾随空格分隔开,但只考虑不以反斜杠开头的单词。记住
\\n
不是转义字符,而是文本字符串\n
的表示顺便说一句,我不会称您的尝试为“暴力”,因为像
split()
、strip()
、join()
、replace()
等字符串函数正是为了解决这类问题相关问题 更多 >
编程相关推荐