我正在尝试使用此正则表达式从开头为@的字符串中检索单词。

'@yoMan is going crazy with @yoker-wiy'.match(/\b@\S+\b/g)

没用它仅适用于字母,不适用于@或#等字符

早些时候我尝试使用/@(\w+)/g,但是它从单词-wiy中修剪了yoker。抱歉,使用正则表达式根本不好。

我认为这个问题有一个我找不到的重复项。谢谢您的帮助。

最佳答案

早些时候我尝试过/ @(\ w +)/ g,但它的词义是-wiy
  约克


因为\ w包含alphabets ( both case ), digits and _不包含-,所以您只能得到utpo @yorker



只需使用splitfilterstartsWith



let str = '@yoMan is going crazy with @yoker-wiy';
let final = str.split(/\s+/)
               .filter(v => v.startsWith('@'))
console.log(final)







通过匹配,您可以使用@[^\s]+



let str = '@yoMan is going crazy with @yoker-wiy';
let final = str.match(/@[^\s]+/g)

console.log(final)

关于javascript - 获取所有以@字符开头的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58487574/

10-09 05:00