我得到一个非常大的字符串,其中包含n个记录。每个记录由3组文本组成,其中前3个包含在尖括号中。每组文本的长度为1-n个字符。这个整体模式在字符串中重复1-n次。 (见下面的例子)。
<text1a><text2a><text3a>text4a<text1b><text2b><text3b>text4b<text1c><text2c><text3c>text4c
|--------single record-------||-------single record--------||-------single record--------|
使用上面作为输入字符串,我试图开发一个模式匹配器,它将返回给我字符串中的每个单独记录。我尝试了很多变化但是没有得到任何东西,只有第一条记录或整个字符串。我已经阅读了许多有关重复模式的帖子,并尝试应用这些原则但收效甚微。我成功地找到了可能在给定字符串中重复的IP地址,电话号码和其他模式,但这种模式使我无法理解。提前谢谢。
答案 0 :(得分:1)
我在Java中实现它。我找到的解决方案是以下模式......
String patternString = "(\\[.*?\\]){3}([^\\[])*";
Pattern pattern = Pattern.compile(patternString);
此模式将匹配一个记录(较大字符串的子字符串),该记录由3个括号内的部分组成,其中包含任意数量的字符,后跟除括号(表示新记录)之外的任意数量的字符
感谢您的帮助。