Regex - 解析HTML文件并从文本中删除转义字符[重复]。

问题描述 投票:1回答:1

我正在写一个使用 cheerio 的 webscape url 的解析器。我遇到了这样的问题,当我看到包含转义符(反斜杠)的文本时,我似乎无法使用Regex来删除它们。当我把这样的单词打印到控制台时,我得到了这样的结果。

'Local\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\tThe'

其中转义符实际上是可见的。

我试着用Regex把它们去掉,像这样。

text = text.replace(/\\n\\/g, " ")

但这并没有任何改变

我认为这与html解析器解析文本的方式有关,但任何帮助都将是巨大的,非常感谢。

node.js regex parsing backslash html-escape-characters
1个回答
0
投票

\ 在编程语言的文本字符串中是奇怪的。这是一个转义字符 \n 是输入单个换行符(0x0A)的方法。而 \t 是输入tab字符(0x09)的方法。而 \\ 是打单字的方式 \ 字符,所以看起来你的字符串中包含了乱七八糟的换行符和制表符。

所以看起来你的字符串中包含了乱七八糟的换行符和制表符。

text = text.replace(/[\n\t]/g, " ")

将用空格代替它们。如果你想只替换换行符......

text = text.replace(/\n/g, " ")

在regexps中 \s 匹配所有空白字符(tab、空格、换行)。因此,这将所有一个或多个(+)的空白字符,并用一个空格代替。

text = text.replace(/\s+/g, " ")

(这就是浏览器在渲染html时不使用 <pre></pre> 标签)

小贴士 当Regexps得到意想不到的输入时,它们可能会变得很脆弱。请记住一句口号:"如果你用一个regexp解决一个问题,那么你就有两个问题。

© www.soinside.com 2019 - 2024. All rights reserved.