换行符正则表达式-/ [\ r \ n] /与/ [\ n] /相同?

用户名

至于匹配字符串中的换行符-是否/[\r\n]/相同/[\n]/

我正在阅读此博客文章:https : //davidwalsh.name/remove-multiple-new-lines

它说使用/[\r\n]/,但是我只是想知道它是否始终与匹配/[\n]/,或者它们是否是维恩图,其中每个都可能匹配不同的东西。

一定的表现

不,他们不是一回事。\r与回车符(CR)\n匹配,而与换行符(LF)匹配。在某些环境中,换行通常由\r\n(例如Windows)指定,而在其他环境中,换行仅由\n(Unix)指定它们是单独的字符。

这是一个例子:

const file = 'line\r\nline2';
const file2 = 'line\nline2';

console.log(file.replace(/[\n]/g, '\nNEW LINE:\n')); // one replacement
console.log(file2.replace(/[\n]/g, '\nNEW LINE:\n')); // one replacement

console.log(file.replace(/[\r\n]/g, '\nNEW LINE:\n')); // two replacements
console.log(file2.replace(/[\r\n]/g, '\nNEW LINE:\n')); // one replacement

如您所见,您不能只使用[\n]而不是[\r\n]-输出是不同的,它们将匹配字符串的不同部分。

通常,当您想以未知格式匹配通用换行时,可以使用

\r?\n

匹配回车符(如果存在),然后换行。

正如评论所指出的,确实是旧的Mac\r使用了,所以也要匹配它们,您可以提前寻找\r\n然后匹配:

(?=\r|\n)\r?\n?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我的Python正则表达式与Windows中的换行符不匹配\ r \ n?

正则表达式-Java以*开头,以换行符(\ n)结尾

正则表达式在每个\ n处放置一个实际的换行符

gsub的正则表达式匹配行,直到并通过换行符\ n字符为止

Python正则表达式在文本的前后查找多个换行符“\n”

正则表达式模式以随机\ n或\ n \ n作为换行符来计数诗歌中的行

用js上的正则表达式更改除第n个换行符以外的所有换行符

正则表达式:不匹配以换行符(\ n)和行尾锚($)结尾的字符串

使用正则表达式提取字符串和换行符(/ n)之间的文本

如何在python中使用正则表达式将所有内容匹配为双换行符“ \ n \ n”?

正则表达式:\s 不匹配 \r\n

在彼此的'n'个单词中找到相同单词的正则表达式

正则表达式用\ r \ n替换所有\ r而不是\ n的实例

匹配换行符-\ n或\ r \ n?

使用 sed(或 awk,或 tr)用表达式替换换行符 \n

正则表达式查找“ \ n”

R-正则表达式-用一个\ r \ n替换多个\ r \ n(CRLF)

正则表达式:处理 \r\n 作为普通单词

python 2.7正则表达式与字符串中的\ r \ n匹配

R正则表达式-替换第n个匹配项

正则表达式-匹配以获取\ r \ n之前和之后的单词

修复用于替换所有\ n和\ r内引号的正则表达式

需要正则表达式在字符串中找到\ n或\ r

正则表达式,匹配除 \r \n 之外的所有内容作为普通字符

正则表达式删除HTML标记以及\ r和\ n标记

试图了解这个s / \ r?\ n $ // perl正则表达式

正则表达式与新行之间的内容不匹配 (\r\n)

如何使用python和正则表达式计算多少\ n(换行)?

Scala 正则表达式无法匹配包含多个“\r\n”的给定字符串中的“\r\n”