2013-01-22 15 views
0

我試圖用正則表達式找到一段文字中的多音節詞的數量,我的代碼大部分時間都在工作,但沒有選擇某些多音詞:使用正則表達式找到多音節詞

polySyllableCount = lWords2.replace(/(?:[^laeiouy\s]es|ed|[^laeiouy\s]e)$/, ''); 

是我用數音節,和

polySyllableCount = lWords2.replace(/^y/, ''); 

更換領導Ÿ的,使他們不計,

最後:

try 
{ 
polySyllables = polySyllableCount.match(/[aeiouy]\S[aeiouy]\S[aeiouy]/g).length; 
} 
catch(err) 
{ 
console.log("No Poly Words") 
} 

來計算多音節詞的數量。

我的思維過程是,它會找到一個(修改)字,除空白被任何東西分隔的任何3個元音,給我的複音詞數量

+2

請注意,\可以爲S與'.'和','匹配標點符號,這可能是一些誤檢的原因。您可以用\ w替換\ S以獲得更好的結果。當然\ w也會包含數字,如果你想要非常準確,你可以使用[a-z]。你也使用/ g開關。你需要添加/我它,以便它搜索AEIOUY也是如此,它會/...regexp.../gi – AlexStack

+0

好的謝謝,這一定會有所幫助!我會同時使用[az]和gi – ECH

+0

也你知道我怎麼說[az]可以發生任何次數(我實際上可能會把'[^ laeiouy]') – ECH

回答

1

請注意,\ S也匹配標點符號喜歡 。而且這可能是一些誤檢的原因。例如:

'ame.na mana miu' //'ame.na' will be treated like one word with your regexp 

您可以用\ w替換\ S以獲得更好的結果。當然\ w也會包含數字,如果你想要非常準確,你可以使用[a-z]。你也使用/ g開關。您需要添加/我給它,這樣它搜索AEIOUY太所以這將是

/...regexp.../gi 

您可以在這裏瞭解更多:javascriptkit.com/javatutors/redev2.shtml