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

标签 javascript regex

我有以下正则表达式:

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

它与“kjgjhgjkg jgjgj kjgjkg hj translate(-0.24588 125.3) jjhkjghj”字符串匹配“translate(-0.24588 125.3)”

现在我所采取的方法如下所示。我找到了一个特定的字符串,但我想进一步替换该匹配的字符串。

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

这里,[“翻译(-0.24588 125.3)”,“(-0.24588 125.3)”,“-0.24588”,“0”,“.24588”,“125.3”,“125”,“。 3"]

我认为这应该只是一场比赛,那就是 [“翻译(-0.24588 125.3)”]

所以,我实际上需要将 "kjgjhgjkg jgjgj kjgjkg hj translate( -0.24588 125.3) jjhkjghj" 字符串。我怎样才能做到这一点?

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

最佳答案

要在 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)

关于javascript - 想要对我的 RegEx(正则表达式)进行更多分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31206535/

相关文章:

Java正则表达式第一个匹配的字符

javascript - 允许字母数字和空格的正则表达式。使用 UTF-8

javascript - Vaadin Flow - 如何添加自定义图标集?

javascript - 从 Object.create() 方法返回的新对象似乎覆盖了它的原始对象,这不是我所期望的

javascript - request(...).then 在发出 POST 请求时不是函数错误

javascript - 为什么 Mapbox 给我 'o.createObjectURL is not a function' 错误?

javascript - 子字符串的正则表达式

regex - 需要过滤日志以搜索最近 5 分钟的行

javascript - TinyMCE:可以禁止给定属性中的指定值吗?

javascript - 为什么 '+' 在从字符串转换为 float 或整数时像 javascript 中的解析一样,以及它在性能方面有何不同?