2013-03-01 50 views
2

如何使用正則表達式查找重複的字符?如何匹配重複的字符?

如果我有aaabbab,我想匹配只有中三次重複的字符:

aaa 
+2

沒有足夠的信息知道你在問什麼。你的意思是你想要查找由重複字符組成的字符串的所有子字符串嗎?或至少3個重複的字符?或者第一個重複的子字符串?還是最大? – 2013-03-01 16:31:23

+0

我想查找一個字符串中的任何字符是否重複完全或大於3次 EX:「abbbcaa」=>只需要匹配「bbb」 – loganathan 2013-03-01 16:38:25

+2

那麼「abbbcaaa」如果只匹配「bbb」或「aaa」呢? – doesterr 2013-03-01 16:40:16

回答

8

嘗試string.scan(/((.)\2{2,})/).map(&:first),其中string是你的字符的字符串。

此工作的方式是,它看起來爲任何字符並捕獲它(點),則匹配字符的重複(在\2反向引用)2或更多次({2,}範圍的意思是「2和無窮大的時間之間的任何地方「)。掃描將返回一個數組數組,所以我們將第一個匹配映射出來以獲得期望的結果。

+0

在我的情況下,我必須找到確切的重複次數,用'{5}'改變'{2,}'以匹配確切的'6'重複。 – 2016-10-18 12:36:09