适用于两个字符串的Java正则表达式
我需要一个Java正则表达式的帮助。我有一个文件名字符串,它可以有以下格式之一: 编号-yyyymmdd.text_1.xml 或 yyyymmdd.text_1.xml 我可以使用以下正则表达式从第一种格式中获取和:适用于两个字符串的Java正则表达式,java,regex,string,Java,Regex,String,我需要一个Java正则表达式的帮助。我有一个文件名字符串,它可以有以下格式之一: 编号-yyyymmdd.text_1.xml 或 yyyymmdd.text_1.xml 我可以使用以下正则表达式从第一种格式中获取和: “\\-(.*?\”-给我yyyymmdd “(.*?\ \-”-给我一个号码 但对于第二种格式(即.text_1.xml),它会抛出错误,并且不会返回。我需要一个正则表达式的日期格式,将与两个字符串 您能帮忙吗?此正则表达式为格式1提供数字和日期,为格式2提供空字符串和日期 p
“\\-(.*?\”
-给我yyyymmdd
“(.*?\ \-”代码>-给我一个号码
但对于第二种格式(即.text_1.xml),它会抛出错误,并且不会返回。我需要一个正则表达式的日期格式,将与两个字符串
您能帮忙吗?此正则表达式为格式1提供数字和日期,为格式2提供空字符串和日期
public static void main(String[] args) {
String s1 = "number-20150606.text_1.xml";
String s2 = "20150606.text_1.xml";
Pattern p =Pattern.compile("(.*?)-?(\\d{8})");
Matcher m = p.matcher(s1);
while(m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
m = p.matcher(s2);
while(m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
}
O/p:
此正则表达式为格式1提供数字和日期,为格式2提供空字符串和日期
public static void main(String[] args) {
String s1 = "number-20150606.text_1.xml";
String s2 = "20150606.text_1.xml";
Pattern p =Pattern.compile("(.*?)-?(\\d{8})");
Matcher m = p.matcher(s1);
while(m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
m = p.matcher(s2);
while(m.find()) {
System.out.println(m.group(1));
System.out.println(m.group(2));
}
}
O/p:
非常感谢。这非常有帮助。谢谢!!这很有帮助。