【问题标题】:Regex get entire word starting with @正则表达式获取以@开头的整个单词
【发布时间】:2018-05-16 12:45:39
【问题描述】:

基本上我试图创建一个正则表达式模式来获取以@开头的每个单词
例如:

@Server1:IP:Name Just a few words more 

模式应该找到“@Server1:IP:Name”
我创建了一个迄今为止有效的正则表达式模式:

/@\w+/

问题是冒号后的所有内容都不再匹配。如果我使用这个正则表达式,我会得到这个结果,例如:

@Server1

我如何确保它会得到以@开头的整个单词并忽略其中的冒号?

【问题讨论】:

  • 可能是@[:\w]+
  • /@\w+(?::\w+)*/g
  • 你的预期输出是什么?

标签: javascript regex


【解决方案1】:

效果很好,试试吧:

@\w\S+

https://regex101.com/

\w 匹配任何单词字符(等于 [a-zA-Z0-9_])

匹配任何非空白字符

+ 量词 - 匹配一次到无限次,尽可能多次,按需回馈(贪婪)

【讨论】:

    【解决方案2】:

    你可以用这个

     @[\w\s:]+
    
    • \w 匹配任何单词字符(等于 [a-zA-Z0-9_])
    • \s 匹配任何空白字符(等于 [\r\n\t\f\v ])
    • :匹配字符:字面意思(区分大小写)

    如果您的字符串包含任何 (!@#$%^&*()_+.) 您也可以添加它们。

    【讨论】:

      【解决方案3】:

      试试这个@\S+

      它为您提供“@”和下一个空格之间的所有内容。

      \S 匹配任何非空白字符。

      参考this

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-23
        • 2014-07-06
        相关资源
        最近更新 更多