data.replace(/(.*)/g, '$1')
我在粉碎nodejs时遇到了上述问题,有人能快速解释一下这个语法吗?我是Regex的新手。
答案 0 :(得分:4)
.
表示匹配新行以外的字符。
*
匹配前面标记中的0个或更多个。这是一个贪婪的匹配,在满足下一个标记之前将匹配尽可能多的字符。
$1
指的是匹配的群组。
g
修饰符表示全局,反过来表示
"不要在第一场比赛中停下来。在此之后继续匹配"
基本上它正在做的是将每个角色捕获到一个组中,直到它遇到\n
(换行符)并用它替换它。
此操作没有变化,您应该避免这样做。
答案 1 :(得分:1)
.
可以是除换行符之外的任何字符,*
量词表示.
可以匹配0到无限次。因此,它匹配数据中的所有字符。 .*
周围的括号将所有匹配的字符分组到一个组中,$1
指的是第一个捕获的组。因此,我们基本匹配所有字符,并将其替换为匹配的字符。
类似于做
str.replace(str1, str1)
答案 2 :(得分:0)
您在“Smashing Node.js”中找到了它。我试过也发现了。那里有代码:data.replace(/(.*)/g, ' $1')
。请注意1美元前的两个主要空格。它使整个文本缩进。
.*
匹配整行," "
+同一行g
修饰符在那里