Javascript 如何匹配@until空格后的所有内容?

Javascript 如何匹配@until空格后的所有内容?,javascript,regex,Javascript,Regex,我有这个字符串: var str = 'این یک @پیا.م تست است'; // I want this ^^^^^ 我可以这样选择它: /@(.{5})/ 但这不是我需要的,因为在@之后和空格之前的单词长度并不总是5。我真的不知道为什么\w与波斯语字符不匹配。甚至[a-zA-Z]也不起作用 那么,我该怎么做呢?您可以使用下面的正则表达式,它将返回@和fot之间的任何内容: @:按字面意思匹配字符@ (.*):匹配任何字符(换行符除外) \s:匹配任何空白字符[\r\n

我有这个字符串:

var str = 'این یک @پیا.م تست است';
// I want this     ^^^^^
我可以这样选择它:

/@(.{5})/
但这不是我需要的,因为在
@
之后和空格
之前的单词长度并不总是
5
。我真的不知道为什么
\w
与波斯语字符不匹配。甚至
[a-zA-Z]
也不起作用


那么,我该怎么做呢?

您可以使用下面的正则表达式,它将返回
@
和fot
之间的任何内容:

@:按字面意思匹配字符@

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

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

希望这能有所帮助。

下面的正则表达式将起作用

/@(.*?)\s/

作为一种独立于UNICODE的方法,您可以简单地使用一个否定字符类:

'@([^ ]+)'

请参见演示

如果您有PCRE(使用Javascript),最短的方法是:


那是@-符号后面至少有一个非空格。大多数其他字符类转义符也有大写的版本,这并不意味着这一点,例如,
\D
表示非数字。

这个点是我需要选择的一部分,我想要的正是:
یا。م
你想要
@
+一个字符之间的单词吗?!或者在
@
和空格之间?不,我想要
@
和{space}
\w
之间的所有东西都是
[a-zA-Z0-9.]
str.match(/@(\S+)/)