gpt4 book ai didi

ruby - 如何在这句话中使用 Ruby Regex 解析用户名、ID 或整个部分?

转载 作者:数据小太阳 更新时间:2023-10-29 08:29:44 25 4
gpt4 key购买 nike

我有这样的句子:

你好@[Pratha](user:1),你看到@[John](user:3)的回答了吗?

我想要的是获取 @[Pratha](user:1)@[John](user:3)。他们的名字和 ID 或者只是我引用的文本,这样我就可以自己分解和解析名称和 ID。

但是这里有个问题。名称 PrathaJohn 可能包含非 abc 字符,例如 '-+ 等...但不是 []()

到目前为止我尝试了什么:

c = ''
f = c.match(/(?:\s|^)(?:@(?!(?:\d+|\w+?_|_\w+?)(?:\s(\[)|$)))(\w+)(?=\s|$)/i)

但没有成功。

最佳答案

你可以使用

/@\[([^\]\[]*)\]\([^()]*:(\d+)\)/

参见 the regex demo

详情

  • @ - @ 字符
  • \[ - 一个 [
  • ([^\]\[]*) - 第 1 组:[] 以外的 0+ 个字符
  • \] - ] 字符
  • \( - 一个 ( 字符
  • [^()]*- ()以外的 0+ 个字符
  • : - 冒号
  • (\d+) - 第 2 组:1 个或多个数字
  • \) - ) 字符。

样本 Ruby code :

s = "Hello @[Pratha](user:1), did you see @[John](user:3)'s answer?"
rx = /@\[([^\]\[]*)\]\([^()]*:(\d+)\)/
res = s.scan(rx)
puts res
# = > [["Pratha", "1"], ["John", "3"]]

关于ruby - 如何在这句话中使用 Ruby Regex 解析用户名、ID 或整个部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53447793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com