正则表达式拒绝特定字符; *&%^ =“”

时间:2015-02-12 06:20:40

标签: regex

我需要使用正则表达式验证输入字段,但输入字段不应出现在这些字符;*&%^=""中。

因为我是Regex所以

的新人

我写的正则表达式是\A.+[a-z0-9A-Z]+\Z,但它不是验证

@Avinash Raj 解决了这个问题,因为这对我有用^[^;*&%^="]+$

感谢 @Avinash Raj

2 个答案:

答案 0 :(得分:4)

使用否定的字符类。

^[^;*&%^="]+$

这匹配任何字符一次或多次,但不匹配否定字符类中的字符。

  • ^声称我们处在一条线的起点。
  • [^...]否定字符类,它匹配任何字符,但不匹配特定字符类中的字符。
  • 在char类之后
  • +将重复char类一次或多次。
  • $断言我们在一行的末尾。

答案 1 :(得分:1)

另一种方式:

str = "Why won't this *!&!!* code run??!"
str.tr('*&%^"=', '') == str #=> false

str = "Now it works, but I have no idea why!!"
str.tr('*&%^"=', '') == str #=> true