【发布时间】:2020-10-25 20:45:52
【问题描述】:
我对 Regex 很陌生。现在我尝试使用正则表达式来准备我的标记字符串,然后再将其发送到数据库。
这是一个示例字符串:
@[admin](user:3) Testing this string @[hellotessginal](user:4) Hey!
到目前为止,我能够在此处使用 /@\[(.*?)]\((.*?):(\d+)\)/g 识别整个术语 @[admin](user:3)
但下一步是我希望删除(user:3) 留下@[admin]。
因此,通过剥离器函数的结果将是:
@[admin] Testing this string @[hellotessginal] Hey!
请帮忙!
【问题讨论】:
-
那你为什么不捕获
@\[(.*?)]呢?像s.replace(/(@\[.*?])\(.*?:\d+\)/g, '$1')这样的东西可以做到。不过,我会在这里使用否定字符类而不是.,s.replace(/(@\[[^\][]*])\([^()]*?:\d+\)/g, '$1') -
我很抱歉成为菜鸟@WiktorStribiżew,s.replace 有什么作用?你能写一个我可以修改的函数来帮助我理解吗?
-
@Mandy8055 是的,但是用户有可能输入自己的括号,这就是为什么模式需要有一个条件才能在括号前面加上 @[...]
-
s是一个字符串变量。
标签: javascript regex reactjs