Regex拒绝特定字符*&;%^=&引用&引用;
我需要使用正则表达式验证输入字段,但输入字段不应出现这些字符Regex拒绝特定字符*&;%^=&引用&引用;,regex,Regex,我需要使用正则表达式验证输入字段,但输入字段不应出现这些字符;*&%^=“” 因为我是新来的RegexSo 我编写的正则表达式是\A.+[A-z0-9A-Z]+\Z,但它不是validate 正如@Avinash Raj已经解决了这个问题,因为这对我来说是可行的^[^;*&%^=“]+$ 谢谢你,Avinash Raj使用否定字符类 ^[^;*&%^="]+$ 这会匹配任何字符一次或多次,但不会匹配被否定字符类中的字符 ^[^;*&%^="]+$ ^断言我们处于一行的开头
;*&%^=“”
因为我是新来的Regex
So
我编写的正则表达式是\A.+[A-z0-9A-Z]+\Z
,但它不是validate
正如@Avinash Raj已经解决了这个问题,因为这对我来说是可行的^[^;*&%^=“]+$
谢谢你,Avinash Raj使用否定字符类
^[^;*&%^="]+$
这会匹配任何字符一次或多次,但不会匹配被否定字符类中的字符
^[^;*&%^="]+$
断言我们处于一行的开头^
与任何字符匹配但不匹配该特定字符类中存在的字符的求反字符类[^…]
在char类之后,将重复char类一次或多次+
断言我们在一行的末尾$
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
^
并不断言我们是字符串的开头,它断言我们是在一行的开头;类似地,$
表示行的结尾,而不是字符串的结尾。您希望\a
和\z
分别作为整个字符串的开头和结尾。是的,无法在上面添加字符串行
.Cheat!你替换了几个多字节字符。我永远不会这样做。你应该为你的(和未来一样)问题添加一些信息,比如什么是有效的地址协议和一些样本(通过或错过测试)。我一定看到了一些东西。:-(绿色就是它的所在。)