删除正则表达式Java后面的所有字符
我有一个日期,看起来像“9/22/2015”,但有时像以下任何一个:
"9/22/2015 1"
"9/22/2015 ee"
因此,我在Java中与regrex签入,如下所示
Pattern patt = Pattern.compile("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})");
if (patt.matcher(start).find()) {
System.out.println("match");
}
但这些“9/22/2015 1”、“9/22/2015 ee”也匹配吗?我想做的是检查“9/22/2015”,然后再检查之后的任何事情,不管是什么,我怎么能这样做
我也试过Pattern patt = Pattern.compile("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})");
,但在“9/22/2015 1”、“9/22/2015 ee”中也实现了
谢谢
# 1 楼答案
使用此正则表达式
"^([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})$"
{cd2}应该与之合作
# 2 楼答案
我相信您希望使用Matcher(特别是^{} )来提取捕获的组:
# 3 楼答案
如果您需要在日期之后没有任何内容,请告诉regexp在日期之后有一个新行\n或行尾$,或者可能有一些额外的空间。检查\n是否有多行,检查$是否有多行,如果有1行/字符串。实际上,您告诉regexp查找类似于日期格式的字符串。它找到了。您没有告诉regexp在那之后什么可以或什么不可以
# 4 楼答案
用
matches()
代替find()
matches()
将尝试匹配完整字符串find()
将扫描字符串,直到找到一个匹配项