Javascript 如何使用正则表达式提取后跟@的字母序列?

Javascript 如何使用正则表达式提取后跟@的字母序列?,javascript,regex,Javascript,Regex,我尝试使用正则表达式从内容中提取字符序列,示例如下: (类似于社交媒体帖子中的用户标签): (这里有一个空格)@marktwain @马克·亚当·吐温 @马克·亚当·吐温@比尔·亨利 我使用了以下正则表达式:(\s)@(\w+)\s?(\w+)\s?(\w+) 问题是,如果我键入以下字符序列,它不会检测到单数子字符串: For Example: @mark @sdshdg (@mark is detected but @sdshdg is not) It det

我尝试使用正则表达式从内容中提取字符序列,示例如下:

(类似于社交媒体帖子中的用户标签):

(这里有一个空格)@marktwain

  • @马克·亚当·吐温

  • @马克·亚当·吐温@比尔·亨利

  • 我使用了以下正则表达式:
    (\s)@(\w+)\s?(\w+)\s?(\w+)

    问题是,如果我键入以下字符序列,它不会检测到单数子字符串:

    For Example: @mark @sdshdg (@mark is detected but @sdshdg is not)  
                 It detects both of them when @mark twain adam @sdhgh are written in full sequence.
    
    我想要的是一个正则表达式,可以提取
    @marktwainadam@bill@henry@bill-henry-gates

    名称的开头应该有一个@,在@之前应该有一个空格,并且名称最多可以有三个单词。我的正则表达式的问题是,一旦有一个匹配项,比如说,
    @Paul Adams
    ,如果后面跟着另一个名字,就说
    @Brett Smith
    。第二个无法检测到前面的空格。

    请尝试以下正则表达式:

    (?<=\s)(@(\w+\s?){1,3})
    

    (?您只需要可选的非捕获组,
    (\s)@(\w+)(:\s(\w+))(?:\s(\w+)?
    不太确定您是否需要捕获第一个空格,但您没有显示您正在使用的代码。哇,这真的很有效!!谢谢!您是如何发现的?如果您是正则表达式专家,请指出一些可供学习的资源。但是,我仍然需要一件小事,即@符号应该在sp之后才能检测到ace,其功能与我在社交媒体帖子中尝试创建用户标签的功能相同。我可以使用长正则表达式来实现这一点,但该空间产生了一个问题。我在@之前需要该空间。@SAF将正则表达式更新为在@之前需要空间。您可以开始从中学习正则表达式。如果我还希望 成为con,如何修改该正则表达式将其视为一个空格。如果文本空格不存在,但存在( )而不是它,则所有以前的规则都适用。(@SAF使用
     
    的unicode编码,即正则表达式中的
    \u000A0
    进行匹配,并将其添加到现有列表中,如
    [\u000A0\s]
    ,完整正则表达式将是
    (?嗨,你能帮我用正则表达式找到以下内容吗:[[{“id”:2,“value”:“Sumit Sharma”,“title”:“Sumit”,“avatar”:null,“prefix”:“@”}]]以方括号开始[并以方括号结束。中间的强制词是“prefix”:“@”匹配字符串中的所有内容?