2015-01-10 62 views
1

我想用正則表達式找到consonant clusters。簇的一個例子是mpl in 例子如何用正則表達式找到輔音羣集?

爲了開始,我濾除了所有的元音並用空格替換了它們。隨着元音被濾除,示例x mpl s

我怎樣才能篩選出X小號嗎?

+1

「解決」是什麼意思? –

+0

你的輸入和預期輸出是什麼?你是否只想匹配組合者? –

+1

術語*「輔音簇」*沒有單一的,明確定義的含義。你需要添加一個你想要匹配的確切定義。 – Tomalak

回答

1

好像你想是這樣的,

(?:(?![aeiou])[a-z]){2,} 

(?![aeiou])[a-z]指從小寫字母選擇的任何字符,但不是aeiou

DEMO

  • (?![aeiou])[a-z]匹配小寫字母組合

  • (?:(?![aeiou])[a-z]){2,}兩次或更多次。

1

由於「輔音連綴」你的工作定義是連續兩個或兩個以上輔音,你可以簡單地使用下面的模式(不區分大小寫的,如果你想辦理驗資輔音):

[bcdfghjklmnpqrstvwxyz]{2,} 
  • [bcdfghjklmnpqrstvwxyz] - 連續
  • 兩個或兩個以上 - 一個簡單的白名單中的字符類輔音(即只會匹配輔音)

您可以針對related regex fiddle中的幾個輸入字符串測試該模式。

注意,由於元音「一個ëöü,和有時ÿ「,我已將y包含在上述輔音的白名單字符類中。

您可以刪除y和使用...

[bcdfghjklmnpqrstvwxz]{2,} 

...如果你想無條件地對待Ÿ作爲一個元音,而不是一個輔音;但rules for when y is a consonant比簡單的正則表達式要處理得複雜一點(基本上要求你首先識別音節,然後的位置)。

0

談到評論到一個答案......

當你改變了元音爲空白:搜索\b.\b(或\b\w\b瞄準好一點),並用空白代替 - 擺脫所有孤立字母,留下你至少有兩個序列。

Like RegEx101