1
我正在嘗試使用正則表達式計算給定單詞中的音節數。我提到了堆棧溢出的其他一些帖子,但當我運行我的程序時會出現奇怪的行爲。基本實現的正則表達式模式匹配行爲
這裏是我試圖
int n=0;
Pattern p = Pattern.compile("[aeiouy]+[^$e]");
Matcher m = p.matcher("Harry");
while(m.find()) {
n++;
}
System.out.println(n);
現在,它打印出1。但同時存在一個「A」和「y」的字符串中。我哪裏錯了?
[^ $ e]的目的是忽略任何在字符串末尾出現的「e」。 – ClownInTheMoon
@ClownInTheMoon如果這是你想要做的,你應該使用'[^ e] $'而不是'[^ $ e]'。此外,'[aeiouy] +'由於末尾的「+」而創建了一個或多個元音組。我不確定這是你想要的。 – Titus
Intersting。當我使用'[^ e] $'時,'n'的值爲零。是的,我正在尋找一個或多個元音組,然後嘗試不計數無聲的e。 – ClownInTheMoon