想要对我的RegEx(正则表达式)进行更多分类

want to more classify about my RegEx (regular expression)

本文关键字:分类 正则表达式 我的 RegEx      更新时间:2023-09-26

我有以下正则表达式:

var re = new RegExp(/'btranslate'b('(([-+]?([0-9]+)('.[0-9]+)?)'s([-+]?([0-9]+)('.[0-9]+)?)'))/g);

它与"kjjjhgjkg jjjjj kjjkg hj translate(-0.24588 125.3(jjhkjghj">字符串中的"translate。

现在,我所接近的内容如下所示。我找到了一个特定的字符串,但我想进一步替换匹配的字符串。

var re = new RegExp(/'btranslate'b('(([-+]?([0-9]+)('.[0-9]+)?)'s([-+]?([0-9]+)('.[0-9]+)?)'))/g);
undefined
var string = "kjgjhgjkg jgjgj kjgjkg hj translate(-0.24588 125.3) jjhkjghj";
undefined
var firstelem = re.exec(string);
undefined
firstelem
["translate(-0.24588 125.3)", "(-0.24588 125.3)", "-0.24588", "0", ".24588", "125.3", "125", ".3"]

此处,["translate(-0.24588 125.3(","(-0.2458 125.3(","-0.24588","0",".24588","125.3","125",".3"].

我认为应该只有一场比赛,那就是["翻译(-0.24588 125.3("].

因此,我实际上需要将"kjjjjjkg jjjgjjkgj hj translate(-0.24588 125.3(jjhkjghj">字符串中的translate。我该怎么做?

欢迎任何关于如何改进正则表达式或代码其他部分的建议。

要在translate(value value)字符串中添加逗号,您可以这样修改代码:

var re = /'b(translate'b(?:'((?:[-+]?(?:[0-9]+)(?:'.[0-9]+)?)))'s([-+]?(?:[0-9]+)(?:'.[0-9]+)?'))/g; 
var str = 'kjgjhgjkg jgjgj kjgjkg hj translate(-0.24588 125.3) jjhkjghj';
var result = str.replace(re, "$1, $2");
document.write(result);

我所做的是重新分配捕获组,使其只有两个。第一个(translate'b(?:'((?:[-+]?(?:[0-9]+)(?:'.[0-9]+)?)))translate(value匹配,第二个([-+]?(?:[0-9]+)(?:'.[0-9]+)?'))-与value)匹配。