我如何匹配@直到空格后的所有内容?

时间:2016-02-21 20:20:14

标签: javascript regex

我有这个字符串:

var str = 'این یک @پیا.م تست است';
// I want this     ^^^^^

我可以这样选择:

/@(.{5})/

但这不是我需要的,因为在@之后和空格之前的那个词的长度并不总是5。我真的不知道为什么\w与波斯人物不匹配。甚至[a-zA-Z]也不起作用。

嗯,我怎么能这样做?

4 个答案:

答案 0 :(得分:6)

你可以使用以下正则表达式返回任何beteen @和fot .

<强> @(.*?)[\s]

  

@ :匹配字符@ literally

     

(。*?):匹配任何字符(换行符除外)

     

\ s :匹配任何空格字符[\ r \ n \ t \ f]

希望这有帮助。

答案 1 :(得分:2)

作为独立于Unicocde的方法,您只需使用否定的字符类:

'@([^ ]+)'

请参阅演示https://regex101.com/r/oD9hV0/1

答案 2 :(得分:2)

如果您拥有PCRE(在Javascript中执行)的最短路径是:

str.match(/@(\S+)/)

那个@ -sign后跟至少一个非空格。大多数其他字符类转义也有大写版本,这意味着不是 - 例如。 \D为无数字。

答案 3 :(得分:1)

在正则表达式下工作

/@(.*?)\s/