Javascript 如何使用正则表达式排除匹配的数字?

Javascript 如何使用正则表达式排除匹配的数字?,javascript,regex,Javascript,Regex,给定字符串:编号\u 10\u很重要,我想捕获\u 10\u并排除10 我基本上想用括号替换数字周围的所有下划线 \ud+选择\u10是我的起点。我正在尝试使用或非捕获组,例如\u(?:\ d+)\u来关闭此组,请注意 您必须使用捕获组并重复数字“数字\u 10\u很重要”。替换(/\ud+)\ug,“[$1]” 这是我自己的版本,但是使用了sed,它没有对\d的适当支持: sh$ echo "the_number_10_is_important_ but 10 should not

给定字符串:
编号\u 10\u很重要
,我想捕获
\u 10\u
并排除
10

我基本上想用括号替换数字周围的所有下划线


\ud+
选择
\u10
是我的起点。我正在尝试使用或非捕获组,例如
\u(?:\ d+)\u

来关闭此组,请注意


您必须使用捕获组并重复数字
“数字\u 10\u很重要”。替换(/\ud+)\ug,“[$1]”

这是我自己的版本,但是使用了sed,它没有对
\d
的适当支持:

sh$ echo "the_number_10_is_important_ but 10 should not be fooled by the real_0_ or the fake_1" | sed -E -e 's/_([0-9]+)_/[\1]/g'
the_number[10]is_important_ but 10 should not be fooled by the real[0] or the fake_1

您需要捕获数字并在替换中返回,这样您就可以替换整个
\u10
部分,而不仅仅是下划线

var s = "the_number_10_is_important";
var x = s.replace(/_(\d+)_/gm, "($1)");
console.log(x);
也可以通过“环顾”按自己的方式进行,但这有点复杂

var s = "the_number_10_is_important";
var x = s.replace(/_(?=\d+)/gm, "(").replace(/(?<=\d+)_/gm, ")");
console.log(x);
var s=“数字10很重要”;

var x=s.replace(/)(=\d+)/gm,“(”).replace(/)(?看看这篇文章是否能帮助你很好地开始,但我想你希望\d+而不是\d匹配多个数字为什么不简单:
。replace(/(\d+)/g,“($1)”
?你必须使用一个捕获组并重复数字
“数字\u 10\u很重要”。replace(/\ud+)/g,[$1]);
谢谢您的帮助。在这种情况下,更换
replace
中的括号似乎可以正常工作。