Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在忽略(但保留)某个字符的同时运行正则表达式替换_Javascript_Regex - Fatal编程技术网

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>")