查找字符串以分号或单词结尾

时间:2015-11-16 10:09:46

标签: java regex

我需要一个正则表达式来确定字符串是以分号结尾还是" BEGIN"或者"那么"。在BEGIN和THEN之前,还必须有一个空格或换行符。

if(strLineText.matches(";|THEN|BEGIN$"))

这适用于THEN和BEGIN,但不适用于分号。而且,使用这个正则表达式,我无法确定那些和BEGIN是否是准确的单词。

3 个答案:

答案 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"));