2012-10-23 76 views
1

我在算法設計上比較窮,並且有一個複雜的問題 - 請看一看。我目前在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的那些AAAAA,然後對所有這種類型的字符串執行此操作。

我的正則表達式(不工作)是這樣的:

/(\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

給出了一些示例輸出。 – taufique

+0

感謝您的輸入,我在原文中添加了示例。 –

回答

2

使用正則表達式

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

就是這樣。謝謝。 –

+0

哇,太棒了。 –