也许我愚蠢,但这个问题让我感到困惑。
var text = "aaa\naaa\naaa";
console.log("A: " + text.match(/(.|[\r\n])+/)[0]);
console.log("B: " + text.match(/[\r\n.]+/)[0]);
输出:
A: aaa
aaa
aaa
B:
我真的不明白为什么。我认为他们应该做同样的事情(除了分组的东西)。
可能有关的另一个问题:
我从Windows系统中创建的文件中读取字符串。我试图匹配所有东西。
/[\n\r.]+/
匹配整个字符串。
/[\n\r.]+/g
没有(我在返回的数组中得到了很多' \ r \ n')。
但/[\s\S]+/
和/[\s\S]+/g
都匹配整个字符串。
问题是什么?
答案 0 :(得分:0)
(.|[\r\n])
这种模式意味着任何一个字符|回车/新线
[\r\n.]
这个意味着回车/新行/文字点