在Java中使用正则表达式

str*_*chr 1 java regex

我正在检查函数中字符串的优先级.有没有办法改变我的代码以合并正则表达式 - 我对正则表达式很不熟悉,虽然我已经在线阅读了一些教程,但仍然没有得到'它'太好了.所以任何指导都会非常感激.

例如,在字符串XLYZ中,如果X之后的字符不是L或C,则会打印"违规"语句.这是下面的代码:

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;
                }
            }
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用正则表达式来替换这段代码?

zx8*_*x81 6

你可以使用这样的东西:

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

演示中,查看匹配的字符串.

说明

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

参考