如何在正则表达式中排除尖括号?

时间:2015-07-28 10:07:42

标签: c# .net regex

使用“expresso”测试我的正则表达式我有以下表达式......

[a-zA-Z0-9!£$\(\)-_+=]+

我有以下测试用例:

aB8
aB_8
aB_!8
aB_!8(+=)
aB_!8(+=-_)
aB_!8(+=-_)<>
!£$%()-_+=[];:@~# \|/
!£$()-_+=[];:@~# \|/
!£$()-_+=[];:@~# \|<>/
!£$()-_+=[]{};:@~# \|<>/
!£$()-_+=[]{};:@~# \|<>?/
!£$()-_+=[]{};:@~# \|<>.?/
!£$()-_+=[]{};:@~# \|<>,.?/
!£$()-_+=[]{};:@~# \|<>,.?/'
'!£$()-_+=[]{};:@~# \|<>,.?/
!£$()-_+=[]{'};:@~# \|<>,.?/

这种情况在这里传递,但我希望它由于尖括号而失败:

aB_!8(+=-_)<>

该解决方案需要适用于reg-ex的c#风格。谢谢。

2 个答案:

答案 0 :(得分:1)

^[a-zA-Z0-9!£$\(\)_+=-]+$

添加anchors ^$并将-放在最后。查看演示。

https://regex101.com/r/oC5rY5/21

答案 1 :(得分:0)

所以根据@vks的回复,我使用了

[a-zA-Z0-9!£$\(\)_+=-]+

与我的例子

有些不同
[a-zA-Z0-9!£$\(\)-_+=]+

仅限于负号的位置。

或者,负号需要逃避!

\-