Javascript如何识别字母组合并剥离其中的一部分

neo*_*hun 5 javascript regex reactjs

我对 Regex 很陌生。现在我正在尝试使用正则表达式来准备我的标记字符串,然后再将其发送到数据库。

这是一个示例字符串:

@[admin](user:3) Testing this string @[hellotessginal](user:4) Hey!
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能够@[admin](user:3)使用/@\[(.*?)]\((.*?):(\d+)\)/g

但是下一步是我希望删除(user:3)离开我的@[admin].

因此,通过剥离器函数的结果将是:

@[admin] Testing this string @[hellotessginal] Hey!
Run Code Online (Sandbox Code Playgroud)

请帮忙!

Wik*_*żew 3

您可以使用

s.replace(/(@\[[^\][]*])\([^()]*?:\d+\)/g, '$1')
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示细节

  • (@\[[^\][]*])- 捕获组 1: @[, 0 或更多除[和以外的数字],尽可能多,然后]
  • \(- 一个(字符
  • [^()]*?(- 除and之外的 0 个或更多(但尽可能少)的字符)
  • :- 一个冒号
  • \d+- 1+ 位数字
  • \)- 一个)字符。

替换模式$1中的 指的是第 1 组中捕获的值。

请参阅 JavaScript 演示:

s.replace(/(@\[[^\][]*])\([^()]*?:\d+\)/g, '$1')
Run Code Online (Sandbox Code Playgroud)