Javascript 在忽略(但保留)某个字符的同时运行正则表达式替换
我认为用一些例子更容易解释,所以Javascript 在忽略(但保留)某个字符的同时运行正则表达式替换,javascript,regex,Javascript,Regex,我认为用一些例子更容易解释,所以 "*X*helXlo** my \\X world" => "<b>*X*helXlo**</b> my \\X world" "**helXlo** my \\X world" => "<b>hello</b> my \\X world" “*X*helXlo**my\\X world”=>“*X*helXlo**my\\X world” “**helXlo**my\\X world”=>“你好,
"*X*helXlo** my \\X world" => "<b>*X*helXlo**</b> my \\X world"
"**helXlo** my \\X world" => "<b>hello</b> my \\X world"
“*X*helXlo**my\\X world”=>“*X*helXlo**my\\X world”
“**helXlo**my\\X world”=>“你好,我的\\X world”
这就是我想要的东西
str.replace(/(X)?\*(X)?\*(.*)\*(X)?\*(X)?/g, "<b>$1*$2*$3*$4*$5</b>");
str.replace(/(X)?\*(X)?\*(*)\*(X)?\*(X)?/g,“$1*$2*$3*$4*$5”);
但理想的情况是不那么难看(看起来更像是自然的
替换(/(\*\*.\*\*.*)/g,“$1”)
)。这可能吗?如果我理解你的要求,你肯定不需要所有这些小组。你可以这样做:
str.replace(/X?\*X?\*.*\*X?\*X?/g, "<b>$&</b>")
你想要一个漂亮的正则表达式?你确定你使用的是正确的语言吗?我知道你可以使用
$&
,我不喜欢的是到处键入X,我希望是这样explicit@AaronYodaiken你可以把它简化为只需要写两次X
。请参阅我的最新答案。
str.replace(/(X?\*){2}.*(\*X?){2}/g, "<b>$&</b>")