繁体   English   中英

正则表达式,如何编写查询

[英]Regex, how to write query

如何用以下文本编写正则表达式,以绘制文本和数字:

String txt = "Map. 12. txt Map. 13. txt Map. 14 txt "; 

我试图通过以下方式编写正则表达式:

 String regex = "(Map\\p{Punct}\\p{Space}])([0-9]+\\p{Punct})(.+)?(Map)";

分发收到后:(Map。12.)(Txt)(Map),这导致下一个分区从Map开始。 14.跳过地图13和地图14之间包含的文本。

谢谢您帮忙。

好像您想要这样的东西,

String s = "String txt = \"Map. 12. txt Map. 13. txt Map. 14 txt ";
Matcher m = Pattern.compile("(Map\\p{Punct}\\p{Space})([0-9]+\\p{Punct})(.+?)\\s*(?=Map|$)").matcher(s);
while(m.find())
{
System.out.println(m.group());
}

输出:

Map. 12. txt 
Map. 13. txt 

这与Map. 14 txt不符Map. 14 txt Map. 14 txt因为数字14旁边不存在标点符号。如果您也想与此匹配,则需要将标点符号样式设为可选,例如,

"(Map\\p{Punct}\\p{Space})([0-9]+\\p{Punct}?)(.+?)\\s*(?=Map|$)" 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM