我需要一个正则表达式来确定字符串是以分号结尾还是" BEGIN"或者"那么"。在BEGIN和THEN之前,还必须有一个空格或换行符。
if(strLineText.matches(";|THEN|BEGIN$"))
这适用于THEN和BEGIN,但不适用于分号。而且,使用这个正则表达式,我无法确定那些和BEGIN是否是准确的单词。
答案 0 :(得分:1)
您需要将它们放在一个组中。
if(strLineText.matches("(?s).*(?:;|\\bTHEN|\\bBEGIN)$"))
或
if(strLineText.matches("(?s).*(?:;|\\sTHEN|\\sBEGIN)$"))
答案 1 :(得分:1)
你可以使用简单的前瞻。
^(?=.*(?:;|[ \\n]THEN|[ \\n]BEGIN)$).*$
答案 2 :(得分:0)
这不是正则表达式。
您也可以使用.endsWith()
方法。
String str = "hey;";
if(str.endsWith(";"))
System.out.println("Ends with a ;");
public static boolean endsWithWord(String str, String word)
{
return str.endsWith(word);
}
System.out.println(endsWithWord("hey;", ";"));
System.out.println(endsWithWord("umm BEGIN", "BEGIN"));
System.out.println(endsWithWord("umm THEN", "THEN"));