我正在关注Elequent Javacript's website page on regular expressions并感到有点沮丧。
该页面显示了这个示例,它在删除逗号的同时交换名字和姓氏:
var names = "Picasso, Pablo\nGauguin, Paul\nVan Gogh, Vincent\n";
document.writeln(names.replace(/([\w ]+), ([\w ]+)/g, "$2 $1"));
作者简要解释了它的作用,但花费很少的精力来解释它的工作原理,以及这个例子的主要特征是什么。
任何人都可以帮助我理解(“1美元和2美元”是什么以及它们引用的内容以及为什么
答案 0 :(得分:2)
$1
和$2
引用了第一个和第二个捕获组匹配项((
和)
之间的模式)。
给定命令将查找正则表达式/([\w ]+), ([\w ]+)/
的匹配项并将其应用于所有行(g
选项)。对于每个匹配,它将替换与$2 $1
匹配的字符串,即第二个捕获的值,后跟空格,然后是第一个捕获的值。
有关正则表达式的更多信息和良好的起点,您可以转到regular-expressions.info这是一个非常完整的参考。