我认为用一些例子更容易解释,所以......
"*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>")
)。这可能吗?
最佳答案
如果我明白您的要求,那么您绝对不需要所有这些组。你可以这样做:
str.replace(/X?\*X?\*.*\*X?\*X?/g, "<b>$&</b>")
本质上是相同的模式,只是没有组。 $&
表示整个匹配的子字符串。
或者,您可以将其写为:
str.replace(/(X?\*){2}.*(\*X?){2}/g, "<b>$&</b>")
关于javascript - 运行正则表达式替换,同时忽略(但保留)某个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808137/