Javascript 带星号的正则表达式方括号

Javascript 带星号的正则表达式方括号,javascript,regex,Javascript,Regex,我有以下案文: 那只敏捷的棕色狐狸跳过了那只懒狗。FCC不得不对网络进行审查,因为它说&$#*@!。有614名学生获得90.0%或以上的成绩 我想找到文本: &$#*@ 我定义了以下正则表达式来查找上述文本: [^0-9a-zA-Z\s.] 它确实可以从上面的文本中找到匹配项,但我希望找到重复出现的匹配项。如果我只是多次输入,它就可以工作了。像这样: [^0-9a-zA-Z\s.][^0-9a-zA-Z\s.][^0-9a-zA-Z\s.][^0-9a-zA-Z\s.][^0-9a-zA-Z\

我有以下案文:

那只敏捷的棕色狐狸跳过了那只懒狗。FCC不得不对网络进行审查,因为它说&$#*@!。有614名学生获得90.0%或以上的成绩

我想找到文本:

&$#*@

我定义了以下正则表达式来查找上述文本:

[^0-9a-zA-Z\s.]
它确实可以从上面的文本中找到匹配项,但我希望找到重复出现的匹配项。如果我只是多次输入,它就可以工作了。像这样:

[^0-9a-zA-Z\s.][^0-9a-zA-Z\s.][^0-9a-zA-Z\s.][^0-9a-zA-Z\s.][^0-9a-zA-Z\s.][^0-9a-zA-Z\s.]
现在我放置一个星号来表示零或更多的事件:

[^0-9a-zA-Z\s.]*
([^0-9a-zA-Z\s.])*
而且他们不工作。但是,当我尝试此操作时(使用
/g
修饰符):

我得到了大约155个结果。请参阅此链接:


我如何修改上述代码,以便只匹配
&$#*@

使用
+
量词匹配一个或多个出现:

[^0-9a-zA-Z\s.]+
               ^

或者,为了使匹配更精确,您可以使用限制量词
{2,}
匹配2个或更多,或者
{3,}
匹配3个或更多,等等(请参阅底部的备忘单)

var re=/[^0-9a-zA-Z\s.]+/;
var str='敏捷的棕色狐狸跳过了懒狗。FCC不得不对网络进行审查,因为它说&$#*@!。有614名学生获得90.0%或以上的成绩。”;
如果(m=str.match(re)){
console.log(m[0]);
}
如果您只想获得&$#*@!然后使用这个正则表达式

regex=(&\$#\*@!)
您可以在下面看到结果


本例中的问题是“90.0%”的百分比,是否使用此字符?或者你可以排除它?

我更喜欢
{2,}
而不是
+
,因为你的也会匹配
%
-如果它在
&$#*@之前,请登录
90.0%
@SebastianProske:选择取决于OP,我添加了一整张量词备忘单。
regex=(&\$#\*@!)
var text = 'The quick brown fox jumped over the lazy dog. The FCC had to censor the network for saying &$#*@!. There were 614 instances of students getting 90.0% or above.';

console.log(text.match(/[^A-z0-9\s.]+/g, ''));