0

如果模式匹配,我将如何执行一个代码块,或者如果模式不匹配,我将如何执行另一个代码块?

String input = "abc";

final String mainRegex = "(.*?)(&!|&|==)";

final Matcher matcher = Pattern.compile(mainRegex).matcher(input);


我努力了

if(matcher1.matches())
{
    execute this block
}

else
{
    execute this block
}

但它总是执行else块。即使输入是a>b&!c<d.

4

1 回答 1

6

您的代码是正确的,但您的正则表达式是错误的。它与您的任何一个示例都不匹配。

也许你可以试试这个正则表达式:

final String mainRegex = "(.*?)(&!|&|==)(.*)";

在线查看它:ideone

于 2012-08-30T19:38:57.357 回答