我想使用replaceAll()
方法从日期返回一个空字符串。事实证明,到目前为止我对正则表达式有一些问题:
这是我的示例代码
private String delete(String str){
String str = "2015-07-22";
return str.replaceAll("-2[0-9]{7}","");
}
我不确定这个"-2[0-9]{7}"
在我看来是正确的正则表达式。
为什么此代码不返回""
?
感谢您的帮助。
答案 0 :(得分:3)
\d{4}-\d{2}-\d{2}
将匹配所需的模式:
"2015-07-22".replaceAll("\\d{4}-\\d{2}-\\d{2}", "") // ""
答案 1 :(得分:0)
您忘记了"-"
签名。
如果您想这样做(它不适用于不同的日期模式,也不适用于日期<2000年),请执行以下操作:
str.replaceAll("2[0-9\\-]{9}","")
或
str.replaceAll("2[0-9]{3}-[0-9]{2}-[0-9]{2}","")
答案 2 :(得分:0)
你的正则表达式与 - 。
的原因不符这是一个更好的正则表达式:
^[0-9]{4,}(-([0-9]{2})){2}$
如果您对此有任何疑问,可以在此处找到相关文档: http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
您还可以使用此网站测试您的正则表达式: http://myregexp.com/