javascript中以下正则表达式的含义是什么?

时间:2014-04-08 05:43:41

标签: javascript regex replace

data.replace(/(.*)/g, '$1')

我在粉碎nodejs时遇到了上述问题,有人能快速解释一下这个语法吗?我是Regex的新手。

3 个答案:

答案 0 :(得分:4)

.表示匹配新行以外的字符。

*匹配前面标记中的0个或更多个。这是一个贪婪的匹配,在满足下一个标记之前将匹配尽可能多的字符。

$1指的是匹配的群组。

g修饰符表示全局,反过来表示

  

"不要在第一场比赛中停下来。在此之后继续匹配"

基本上它正在做的是将每个角色捕获到一个组中,直到它遇到\n(换行符)并用它替换它。

此操作没有变化,您应该避免这样做。

答案 1 :(得分:1)

.可以是除换行符之外的任何字符,*量词表示.可以匹配0到无限次。因此,它匹配数据中的所有字符。 .*周围的括号将所有匹配的字符分组到一个组中,$1指的是第一个捕获的组。因此,我们基本匹配所有字符,并将其替换为匹配的字符。

类似于做

str.replace(str1, str1)

答案 2 :(得分:0)

您在“Smashing Node.js”中找到了它。我试过也发现了。那里有代码:data.replace(/(.*)/g, ' $1')。请注意1美元前的两个主要空格。它使整个文本缩进。

  1. .*匹配整行,
  2. 将其替换为" " +同一行
  3. 重复它直到eof,因为g修饰符在那里