我正在检查函数中字符串的优先级。有没有一种方法可以更改我的代码以合并正则表达式-我对正则表达式非常陌生,尽管我已经在线阅读了一些教程,但对它的理解仍然不太好。因此,任何指导将不胜感激。

例如,在字符串XLYZ中,如果X之后的字符不是L或C,则将打印'violation'语句。这是下面的代码:

if (subtnString[cnt]=='X' && cnt+1<subtnString.length){
                if(subtnString[cnt+1]!= 'L' || subtnString[cnt+1]!= 'C'){
                    System.out.println("Violation: X can be subtracted from L and C only");
                    return  false;
                }
            }


有没有办法我可以使用正则表达式替换此代码?

最佳答案

您可以使用如下形式:

Pattern regex = Pattern.compile("^X[LC]");
Matcher regexMatcher = regex.matcher(subjectString);
if(regexMatcher.find() )  { // it matched!
}
else { // nasty message
     }


the demo中,查看匹配的字符串。

说明


^锚断言我们在字符串的开头
X与文字X匹配
[LC]是与一个L或一个C匹配的字符类




参考


Java Class String
Using Regular Expressions in Java

09-10 09:59
查看更多