java - Java正则表达式中的正斜杠问题

标签 java regex

我需要以下数据的正则表达式:

允许所有数字、所有字母或数字和字母的组合,包括特殊字符:

@ . – ‘ ? , ( ) : ; ! * $  _  =  + ^  &  #

和法语 Unicode 重音字符。

请帮忙。我正在使用以下正则表达式,它适用于其他字符,但它以某种方式允许正斜杠(/)

VALIDATOR_STRING = "^[A-Za-z0-9éÉèÈçÇâÂêÊôÔ@.'#,-?:;!*$_=+^&()]+$";

最佳答案

如果您使用破折号 -在字符类中(如 A-Z ),它表示一个范围(在此示例中,每个大写字母都在 AZ 之间)。

因此您允许 ,-? 之间的范围其中包含正斜杠。如果你看http://www.asciitable.com您会看到此范围包含以下每个字符:, . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

要避免这种行为,请将破折号作为字符类中的第一个或最后一个字符:

VALIDATOR_STRING = "^[-A-Za-z0-9éÉèÈçÇâÂêÊôÔ@.'#,?:;!*$_=+^&()]+$";

关于java - Java正则表达式中的正斜杠问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18894553/

相关文章:

ruby - 在文本文件中查找与正则表达式匹配的行

java - 如何在工作流程步骤中访问 Assets

java - 使用 libgdx 触摸滚动

java - 如何区分不同jar版本的类加载器?

ruby-on-rails - RSpec Mailer 测试匹配失败

regex - 从字符串列表中获取子字符串

c - 为什么 ruby​​ scanf 这么慢?

java - 正则表达式在java中查找字符串中的特定单词

java - cobertura vs 三叶草

java - JNA/BridJ 等中的段错误