2012-04-05 24 views
0

任務是根據每個部分設置的各種限制將給定的文本字符串分組爲部分。假設我們有一個字符串S即「Lorem ipsum dolorem」。我們也有3個部分。每個部分都有一些限制,可以限制該部分中的文本數量。這些限制可以用字符數或字數來指定。例如,第一部分可以具有最少五個字符,最多十個字符。第二部分最少可以有一個單詞,最多5個單詞,每個單詞在2到10個字符之間。第三部分可以與第一部分具有相同的限制。將文本分組爲段算法

我們需要使用所有可用的文本,否則就沒有分組解決方案。單詞不能分開(所以我們不能在分組時將單詞分成多個部分)。如果我們在分組中一起保留句子,所有其他事物都是平等的,解決方案會更好。

將文本分組的最有效方式是什麼?

+0

您在尋找什麼,找到給定文本的限制或實現給定的限制?順便說一句:作業? – Matthias 2012-04-05 05:59:29

+0

執行給定的限制。不,不是功課。 – tabdulla 2012-04-05 06:02:30

+0

如果你能舉一些例子,這將有所幫助。 – 2012-04-05 06:39:58

回答

0

如果只算個字符/數字和文字,它是正則表達式的情況下:http://en.wikipedia.org/wiki/Regular_expressions

編輯

例如,考慮以下因素:

sed -E -e 's/([a-z]{2,10}) (([a-z]{2,4}){1,2})([a-z]{2,10})/G:\1 G:\2 
G:\4/' 

如果一個應用這個以「aaa bb bbbb ccccc」得到:

G:aaa G:bb bbbb G:ccccc 
+0

我不這麼認爲。在每個部分中可以有一系列的文字或字符,並且一些解決方案比其他解決方案更優選。例如,最好將句子分組,其他所有事情都是平等的。 – tabdulla 2012-04-05 06:06:00

+0

我不明白,你的意思是「每個部分的一系列文字或字符」。每個正則表達式都可以覆蓋範圍,不是嗎?關於首選項:首先測試nices,如果不匹配,則使用第二選擇等。但是,您可以使用awk等正則表達式工具執行此操作,併爲不同類型的匹配指定不同的值。 – Matthias 2012-04-05 06:11:00

+0

你可以給一個正則表達式的例子嗎? – tabdulla 2012-04-05 06:15:52