2012-04-05 73 views
0

我正在使用一種有關拼寫特定規則的語言。當單詞放在一起時,它們沒有空格,但偶爾使用'--區別一個單詞開頭和另一個單詞結尾,在極少數情況下可能發生混淆。如果兩個單詞的第一個和最後一個字母匹配特定模式,用連字符替換兩個單詞之間的空格?

我現在與當時的之間的空間中顯示的詞,如:

The cat caught the mouse. 

不過,我需要把空格去掉,如:

Thecatcaughtthemouse. 

這些空間之前雖然可以刪除,必須考慮關於'-的佈局的規則:

首先,如果一個單詞的第一個字母(它也是foll OWS另一字)開始於一個元音(aaáàǎābcdeeéèěēiiíìǐīooóòǒōuuúùǔüǘǜǚǖ,或ū),然後用'替換空間(字之間),例如:

The cat ate the sandwich and the ice cream. 

這變爲:

Thecat'atethesandwichandthe'icecream. 

這不適用於句子開頭的單詞。

接下來,如果一個單詞的最後一個字母開頭爲 「A」, 「U」,或 「U」(aaáàǎāuuúùǔüǘǜǚǖ,或ū)和下一個單詞在句子開頭的 「n」,則替換爲-的空間(字之間),例如:

The people from Australia needed a car to visit the plateau near the river. 

這將成爲:

Thepeoplefrom'Australia-needed'acartovisittheplateau-neartheriver. 

最後,如果一個單詞的最後一個字母爲「N」和在句子中的下一個單詞以「G」開頭,結尾,然後替換爲-空間(字與字之間),例如:

The Australian grasshopper was lost in the overgrown grove. 

這將成爲:

The'Australian-grasshopperwaslostinthe'overgrown-grove. 

我怎麼能代替匹配這些模式'-單詞之間的空格?

回答

1

你不說你爲什麼這樣做。我們希望這不是一個家庭作業問題。

假設一個單詞以元音結尾和下一個開始「F」或「T」,我想用明星來代替空間,我寫

sentence:gsub('([aeiouy])%s+([ft])', '%1*%2') 

你可以把它從那裏。

+0

而且,如果您需要Unicode處理,可以在[slnunicode](http://files.luaforge.net/releases/sln/slnunicode)中實現支持UTF-8的'gsub'。 – 2012-04-06 08:57:07

相關問題