2013-07-17 40 views
-1

我有一個包含這個組的字符串:正則表達式:搜索重複組

"|__|" or "|__|__|__|..." 

隨着我的模式([\|__|]{3,})它會得到想要的結果,但它抓住不同的弦太,像這樣*「名稱_ ____「*

問:我如何能捕捉只有這種重複組"|__|__|..."該字符串的?

"Name _________ Age___ Postal Code|__|__|__|__|__|" 
+0

我認爲,在我的模式中「|」垂直條被認爲是OR操作符。 – Misi

+0

''[\ | __ |]'表示它將捕獲這些字符中的任何一個:'\','''或'_'。所以你真的想要'(\ | __ \ |)' – Nolonar

+0

但你爲什麼需要捕獲那些空的領域..你想要做什麼! – Anirudha

回答

2

[\|__|]character class,匹配一個字符(|_;所述\這裏沒有必要,將被忽略)。

你需要一個group

(\|__){3,}\| 

(雖然嚴格,非捕獲組將是最明智的(但略少可讀性)構建在這裏:)

(?:\|__){3,}\| 
+0

''[\ | __ |]'是否也匹配'\'? – Nolonar

+1

@Nolonar:我認爲不必要的反斜槓會被忽略。如果有兩個反斜槓(並且正在使用逐字字符串),它將被匹配。 –

+0

「?」對於Ungreedy而言,但是這裏使用的「:」是什麼? – Misi