2011-07-28 93 views
6

我想用正則表達式匹配最多兩個丟失的字母。例如,如果感興趣的話是「你好」我想匹配以下字符串:正則表達式找到丟失字母的單詞

你好 地獄 直升機 hllo ELLO HEL HEO ELO LLO

我可以使用正則表達式^ h ?è?l?l?Ò?以匹配這些,但是這也將匹配0,1和2字母字符串。我如何要求比賽長度爲3-5個字符?

感謝您的幫助。

回答

6

可以使用前瞻檢查這些字符3-5:

(?=[hello]{3,5})h?e?l?l?o? 

注意,這會像help字符串找到類似的比賽,因爲help包含hel。如果你想stp你可以根據你的情況檢查字符的邊界或字符串的結尾。如果您想匹配刺痛的末尾,請將^添加到開頭,並將$添加到最後。如果您想檢查單詞邊界,請在兩端添加\b

+0

完美,感謝 – PeterM

1

你可以嘗試這樣的事情:

[hello]{3,5} 
+0

但將匹配' olleh'或'hhhhh' - 我不認爲OP想要那樣。 ps糾正小錯誤:3,4 - > 3,5 – Bohemian

3

我認爲這會工作((?=.{3,})h?e?l?l?o?) - 您正則表達式,用「至少3個字符」添加上。

你可能想這只是全字匹配以及(不是像「hellow」開始),所以加\b的開始和結束:\b((?=.{3,})h?e?l?l?o?)\b

相關問題