我得到一个非常大的字符串,其中包含 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 地址、电话号码和其他可能在给定字符串中重复的模式,但我找不到这种模式。提前致谢。
最佳答案
我正在用 Java 实现这个。我找到的解决方案是以下模式...
String patternString = "(\\[.*?\\]){3}([^\\[])*";
Pattern pattern = Pattern.compile(patternString);
此模式将匹配由 3 个括号部分组成的记录(较大字符串的子字符串),其中包含任意数量的字符,后跟任意数量的字符(括号除外(表示新记录))
感谢您的帮助。
关于java - 查找具有重复模式的重复模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27572367/