2015-09-10 105 views
1

尝试使用正则表达式来检测是一个字符串开头的2个字符后跟一个可选的空格,后面跟一个可选的字母。正则表达式检查字符串的第一个字符是数字

这是我的尝试:但似乎并没有吸引我的测试数据

!string.matches("\\b\\d{2}\\s?[a-Z]?") 

测试数据:

23: sentence here 
+0

'contains'不使用正则表达式。 – Pshemo

+0

啊,谢谢。你会建议如何在String中找到正则表达式? (对Java来说相当新颖)。 – Josh

回答

0

contains不使用正则表达式。你可能想创建模式,然后为每个字符串单独的匹配器,并检查它是否可以find您描述的正则表达式。所以,你的代码可以像

private static final Pattern p = Pattern.compile("^\\d\\d\\s?[a-Z]?"); 
public static boolean test(String str){ 
    return p.matcher(str).find(); 
} 

如果正则表达式的整个字符串,而不只是部分匹配(您可以在此方法重命名为更具描述性的)


您可以用yourString.matches(regex)但这种方法检查尝试这意味着如果你的字符串很长,并且你只想检查前几个字符,效率会很低。

相关问题