JavaScript 匹配 ( 后跟一个数字

标签 javascript regex

在字符串n+n(n+n)中,其中n代表任何数字或数字,我想匹配( 并将其替换为 *(,但前提是它后跟数字或数字。

示例:

  • 我想把 2+22(2+2) 改成 2+22*(2+2),
  • 我想把-1(3)改成-1*(3),
  • 4+(5/6) 应该保持原样。

这是我的:

var str = '2+2(2+2)'.replace(/^[0-9]\(/g, '*(');

但它不起作用。提前致谢。

最佳答案

删除^,并将数字分组:

'2+2(2+2)'.replace(/([0-9])\(/g, '$1*(')
'2+2(2+2)'.replace(/(\d)\(/g, '$1*(')    //Another option: [0-9] = \d

建议:2. 通常是有效数字 (= 2)。以下 RegExp 删除数字和括号之间的点。

'2+2(2+2)'.replace(/(\d\).?\(/g, '$1*(') //2.(2+2) = 2*(2+2)

括号创建一个组,可以使用$n 引用,其中n 是组的索引:$1

您的 RegExp 以 ^... 开头,这意味着:匹配以 ... 开头的字符串的一部分。这种行为当然不是故意的。

关于JavaScript 匹配 ( 后跟一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7778274/

相关文章:

java - 从文本文件中删除评论

javascript - jQuery AJAX 函数看不到我的变量

javascript - 如何修复这个正则表达式模式?

javascript - window.console && console.log 是什么?

javascript - 将控制台传输附加到 Winston 日志记录

javascript - 在 React 中,子组件如何调用在其父组件上下文中执行的函数?

python - 在Python中用正则表达式替换html脚本元素源

Python正则表达式匹配多次出现的单词

jquery - 如何使用带有 2 个参数的 jQuery Split?

javascript - 正则表达式:匹配 DNA 序列的排列