Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex拒绝特定字符*&;%^=&引用&引用;_Regex - Fatal编程技术网

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!你替换了几个多字节字符。我永远不会这样做。你应该为你的(和未来一样)问题添加一些信息,比如什么是有效的地址协议和一些样本(通过或错过测试)。我一定看到了一些东西。:-(绿色就是它的所在。)