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