我有以下命令:
String regexContact = "^([0|\\+[0-9]{1,5})?([7-9][0-9]{9})$";Android在regex的末尾指出了错误,并说:
未闭字符类。
我已经筛选过类似的问题,但在我的情况下找不到这个错误的答案。我无法确定我的正则表达式本身是否在某个地方错了。任何帮助都将不胜感激。
发布于 2016-09-01 07:04:13
^([0|\+[0-9]{1,5})?([7-9][0-9]{9})$
^↑ ^___^ ^ ^^___^^___^ ^
|_______________| |_____________|第一个[没有关闭,如果您想要匹配它,您应该转义它:\\[,否则您应该用相应的]关闭它。
发布于 2016-09-01 07:16:32
在Java风格中,[和]符号应该在字符类中转义,以表示文字符号。
您有[0|\\+[0-9],其中[没有转义,并且被认为是字符类的起点,使得第一个[不成对,因此出现了错误。
您需要删除第一个[
String pat = "^(0|\\+[0-9]{1,5})?([7-9][0-9]{9})$";
^^为了匹配:
^ -字符串的开始(0|\\+[0-9]{1,5})? -匹配1或0次的可选组0 -零| -或\+[0-9]{1,5} -加号和任意1到5位数字
([7-9][0-9]{9}) -第2组匹配7、8或9,然后匹配任意九位数字(这里的括号可以删除)$ -直到字符串的末尾.https://stackoverflow.com/questions/39264696
复制相似问题