Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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
Java 正则表达式以避免某些字符和某些字符组合_Java_Regex - Fatal编程技术网

Java 正则表达式以避免某些字符和某些字符组合

Java 正则表达式以避免某些字符和某些字符组合,java,regex,Java,Regex,我必须创建一个文本框,用户在其中输入注释,并且我必须验证该输入不包含以下字符(字符组合) :|,&,;,$,%,@,“,\”,\”,(),+,CR,LF\ 上面的列表以逗号分隔,因此如果两个字符之间出现 一组逗号,它是潜在的字符组合 恶意,不是孤立的角色 我试图为此创建正则表达式,也尝试了积极的前瞻,但对我来说没有任何效果。我也讨论了前面的一些问题,但没有找到解决问题的方法 我可以验证单个恶意字符,但不能验证组合。至于字符,这非常简单。您可以使用[^]指定字符串中不允许的字符类型,在您的情况下,

我必须创建一个文本框,用户在其中输入注释,并且我必须验证该输入不包含以下字符(字符组合)

:|,&,;,$,%,@,“,\”,\”,(),+,CR,LF\

上面的列表以逗号分隔,因此如果两个字符之间出现 一组逗号,它是潜在的字符组合 恶意,不是孤立的角色

我试图为此创建正则表达式,也尝试了积极的前瞻,但对我来说没有任何效果。我也讨论了前面的一些问题,但没有找到解决问题的方法


我可以验证单个恶意字符,但不能验证组合。

至于字符,这非常简单。您可以使用
[^]
指定字符串中不允许的字符类型,在您的情况下,
[^&;$%@\'\“+\]

[^&;$%@\'\“+\\]*
将匹配不包含所述符号的字符串

至于这些组合,regex对此具有负前瞻性。在引擎开始匹配某些内容之前,它可以测试字符串中是否存在模式。语法:
(?!.*thing1 |..*thing2 |…)
(需要
*
,以便检查整个字符串,而不仅仅是下一个单词,所以
(?!.\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


总的来说:
^(?。*:\\\|......*(\)|..*CR.*LF)[^&$%@\'\+\]*$

你能告诉我们你试过什么吗?我试过类似于“*.[^&$%@\\\\\].[C(?!R)].*CR和LF不是意味着控制字符吗?
\r
\n
?很好,我这样做只是为了尝试字符的组合。谢谢Andris,只需稍加修改,我就用JAVA实现了它。谢谢。