我阅读了一些示例来匹配字符串中序列的所有出现,但我在这个示例中遇到了一些困难。我想按如下方式匹配表达式:
"test"-a-"test2"-b-"test3" ...//can alternate like this for any number of times
当我在上面的示例上测试我的代码时,它可以工作,但是当我尝试下面的示例时,它告诉我匹配成功,但我不希望它成功。
"test"-a-"test2"-b"test3" //this is successful but I want it to fail
我使用的正则表达式是:
^ ( ( \ " ( . * ) ? \ " ) * \ \ - ( [ a - z ] ) \ \ - \ " ( . * ) ? \ " ) + $ ;
最佳答案
您可以使用此正则表达式
Pattern p = Pattern.compile("^(\"[^\"]+?\"-[a-z]-)+\"[^\"]+?\"$");
正如您所说:“它以引号中的一串字符开头,然后是一个由减号包围的小写字母,并且必须以引号中的一串字符结尾”。
关于Java 正则表达式 : match all reocurring sequences in a string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23039756/