需要Java中的一些正则表达式帮助。我有一个字符串,其中包含文本,并且始终是日期之后的日期。然后在日期之后,没有空格,新文本开始并以日期结束。等等,然后继续。我需要用循环来获取所有文本实例。它需要从开头排除日期并在最后期望日期。有人可以建议一个好的正则表达式吗?
String candidateString = "dffsd fs sfd 12.12.12asd saddsa dasd 12.12.12fsadf sdfsdf sdf 10.10.10";
Pattern p2 = Pattern.compile(".*?(?![0-9][0-9].[0-9][0-9].[0-9][0-9])[a-zA-Z] (?=[0-9][0-9].[0-9][0-9].[0-9][0-9])");
Matcher matcher2 = p2.matcher(candidateString);
while (matcher2.find()) {
System.out.println(matcher2.group());
}
此代码最终需要日期,但我无法弄清楚如何从头开始排除日期。
答案 0 :(得分:3)
看看这是不是你想要的?
String candidateString =
"Microsoft Visual FoxPro 6.0 language reference 13.02.12";
//"dffsd fs sfd 12.12.12asd saddsa dasd 12.12.12fsadf sdfsdf sdf 10.10.10";
Pattern p2 =
Pattern
.compile("(.*?(?![0-9][0-9]\\.[0-9][0-9]\\.[0-9][0-9])) ([0-9][0-9]\\.[0-9][0-9]\\.[0-9][0-9])");
Matcher matcher2 = p2.matcher(candidateString);
while (matcher2.find()) {
System.out.println("String: |" + matcher2.group(1) + "| Date: |"
+ matcher2.group(2) + "|");
}
这为我打印下面的内容(已包含|
[管道]以显示边界。)
String: |dffsd fs sfd| Date: |12.12.12|
String: |asd saddsa dasd| Date: |12.12.12|
String: |fsadf sdfsdf sdf| Date: |10.10.10|
和
String: |Microsoft Visual FoxPro 6.0 language reference| Date: |13.02.12|