正则表达式怎么实现以下功能
正则表达式如何实现以下功能
我写了如下的代码
为什么执行的结果是
我想要的结果是:
t:2013年7月1日
------解决方案--------------------
首先表达式改成String regex = "\\d{4}年\\d{1,2}月(\\d{1,2}日)?";
然后解释一下为什么你的错误
因为你使用了多选组[],在[]里的大部分元字符都是无效的,意思是(,*,?,
------解决方案--------------------
,{,}等这样的字符不再是元字符,而就匹配一个(,*,?,
------解决方案--------------------
,{,}。
你的正则表达式就是匹配一下字符、
数字 { } 4 1 2 逗号 年 月 日 ( )
------解决方案--------------------
我写了如下的代码
String strDateText = "sdfgnhfdnjh2013年7月01日sdgldfjhggkfp";
String regex = "[(\\d{4}年\\d{1,2}月)|(\\d{4}年\\d{1,2}月\\d{1,2}日)]";
Matcher m = Pattern.compile(regex).matcher(strDateText );
while(m.find()){
String t = m.group();
System.out.println("t:" + t);
fdatDate = t.replaceAll("年|月|日", "/");
}
为什么执行的结果是
t:2
t:0
t:1
t:3
t:年
t:7
t:月
t:0
t:1
t:日
我想要的结果是:
t:2013年7月1日
正则表达式
Java
------解决方案--------------------
首先表达式改成String regex = "\\d{4}年\\d{1,2}月(\\d{1,2}日)?";
然后解释一下为什么你的错误
因为你使用了多选组[],在[]里的大部分元字符都是无效的,意思是(,*,?,
------解决方案--------------------
,{,}等这样的字符不再是元字符,而就匹配一个(,*,?,
------解决方案--------------------
,{,}。
你的正则表达式就是匹配一下字符、
数字 { } 4 1 2 逗号 年 月 日 ( )
------解决方案--------------------
String strDateText = "sdfgnhfdnjh2013年7月01日sdgldfjhggkfp";
String regex = "[(\\d{4}年\\d{1,2}月)
------解决方案--------------------
(\\d{4}年\\d{1,2}月\\d{1,2}日)]";
Matcher m = Pattern.compile(regex).matcher(strDateText );
StringBuffer str = new StringBuffer();
String fdatDate ;
while(m.find()){
String t = m.group();
System.out.println("t:" + t);