复杂文本解析 - 请帮助弄清楚

时间:2012-10-23 18:19:56

标签: java regex groovy

我的算法设计很差,并且有一个复杂的问题 - 请看一下。我目前在Java / Groovy工作。

我有一些看起来像这样的文字:

AAAAA  
AAAAA
CCCCC
any stuff here  
111  
any stuff here  
AAAAA  
stuff  
AAAAA  
stuff  
AAAAA  

BBBBB  
stuff  
222  
stuff  
BBBBB   

我的挑战是抓住AAAAA格式的所有字符串111东西AAAAA,而不抓取任何周围的文本。您可以看到字符串中有多个AAAAA,但我必须只抓取最接近111和222的那些,然后对所有类型的字符串执行此操作。

我的正则表达式(不工作)如下所示:

/(\w{8}|\w{11}).*?(\w{3}).*?\1/  

我一直在和他们一起玩,他们要么抓得太多文字要么说得太慢......如果有人知道我应该用什么来解决这类问题,请告诉我。

编辑:这些是我想要匹配的内容:

AAAAA
CCCCC
any stuff here  
111  
any stuff here  
AAAAA  

BBBBB  
stuff  
222  
stuff  
BBBBB  

我认为这非常类似于解析不正确标记的XML。 无论如何,谢谢你的期待。

1 个答案:

答案 0 :(得分:2)

使用正则表达式

(?s)\b(\w{5})\b(?:(?!\1).)*?\b\w{3}\b(?:(?!\1).)*?\1