如何查找字符串是否包含数字后跟特定字符串

Fra*_*ank 4 java string parsing

我有一个像这样的字符串:

String str = "Friday 1st August 2013"
Run Code Online (Sandbox Code Playgroud)

我需要检查:如果字符串包含"任何数字"后跟"st"字符串,则打印"是",否则打印"否".

我想:if ( str.matches(".*\\dst") )和if ( str.matches(".*\\d.st") ),但它不工作.

有帮助吗?

Roh*_*ain 9

使用:

if ( str.matches(".*\\dst.*") )
Run Code Online (Sandbox Code Playgroud)

String#matches()匹配从字符串的开头到结尾的正则表达式模式.锚^和$是隐含的.因此,您应该使用与完整字符串匹配的模式.

或者,使用Pattern,Matcher和Matcher#find()方法,要搜索字符串中的任何地方一个特定的模式:

Matcher matcher = Pattern.compile("\\dst").matcher(str);
if (matcher.find()) {
    // ok
}
Run Code Online (Sandbox Code Playgroud)