我正在关注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)是什么以及它们引用的内容以及原因
最佳答案
$1
和 $2
引用第一个和第二个捕获组匹配((
和 ) 之间的模式
)。
给定的命令将找到正则表达式 /([\w ]+), ([\w ]+)/
的匹配项并将其应用于所有行 (g
选项)。对于每个匹配,它将替换与 $2 $1
匹配的字符串,即第二个捕获的值,后跟空格,然后是第一个捕获的值。
有关正则表达式的更多信息和良好的起点,您可以前往 regular-expressions.info这是一个相当完整的引用。
关于javascript - JavaScript 中的 REGEX 替换函数 交换单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21977756/