2015-07-28 75 views
0

使用“快报”来测试我的正则表达式我有以下的表达......如何在正则表达式中排除尖括号?

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

我有以下测试案例:

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

这里这种情况被路过,但我想它由于尖括号失败:

aB_!8(+=-_)<> 

该解决方案需要为reg-ex的c#风格工作。谢谢。

回答

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

添加anchors^$并将-在end.See演示。

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

+0

谢谢您的输入。我不认为这是造成它的锚点,而是我例子中的负号位置与你的位置之间的细微差别。我添加了锚点,但仍然无法工作。用过你的,它确实如此。把你的锚停下来,它仍然工作。 – Dib

+1

@Dib yes'-'在字符范围内形成一个范围。所以你的可能会形成一个范围,其中'<>'将在range.with锚和'multiline'标志它应该工作 – vks

0

因此,通过@vks在回复基于我只用负号的位置使用

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

这是subltey不同,我的例子

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

或者,负号需要转义!

\-