我需要找到在单个文本块上匹配多个正则表达式的最有效方法。举一个我需要的例子,考虑一段文本:
“ Hello World真是美好的一天”
我想用“ Bye”代替“ Hello”,用Universe代替“ World”。我总是可以使用各种语言提供的String.replace之类的功能在课程循环中完成此操作。
但是,我可能会有一个带有多个字符串模式的巨大文本块,需要进行匹配和替换。
我想知道是否可以使用正则表达式有效地执行此操作,还是必须使用LALR之类的解析器。
我需要在JavaScript中执行此操作,因此,如果有人知道可以完成此操作的工具,将不胜感激。
您可以传递一个函数来替换:
var hello = "Hello World what a beautiful day"; hello.replace(/Hello|World/g, function ($0, $1, $2) // $3, $4... $n for captures { if ($0 == "Hello") return "Bye"; else if ($0 == "World") return "Universe"; }); // Output: "Bye Universe what a beautiful day";