我认为通过一些例子可以更容易地解释这一点......
"*X*helXlo** my \\X world" => "<b>*X*helXlo**</b> my \\X world"
"**helXlo** my \\X world" => "<b>hello</b> my \\X world"
那就是我想要像
这样的东西str.replace(/(X)?\*(X)?\*(.*)\*(X)?\*(X)?/g, "<b>$1*$2*$3*$4*$5</b>");
但理想情况下不那么难看(看起来更像自然replace(/(\*\*.*\*\*)/g, "<b>$1</b>")
)。这可能吗?
答案 0 :(得分:2)
如果我理解你的要求,你绝对不需要所有这些团体。你可以这样做:
str.replace(/X?\*X?\*.*\*X?\*X?/g, "<b>$&</b>")
它基本上是相同的模式,只是没有组。 $&
表示整个匹配的子字符串。
或者,您可以将其写为:
str.replace(/(X?\*){2}.*(\*X?){2}/g, "<b>$&</b>")