2013-07-02 23 views
0

我需要一個正則表達式,儘可能匹配特殊字符\|。之後我想用一個特殊字符替換比賽。我知道如何替換它們,但我不知道選擇儘可能多的正確的正則表達式。匹配儘可能多,並用一個替換

我嘗試了一些變化,但老實說,我不知道我在做什麼,需要一些幫助。

[|+]|[\+] 

實施例的數據:

Hello ||||| this \\ is a test ||| 

期望的結果:

Hello . this . is a test . 
+1

這正則表達式的家人嗎? sed,perl,python,m grep,$ X?你可能正在尋找「貪婪」。 – donfede

+0

我將在java和c#中使用它。我對正則表達式族不太瞭解。 – user2510136

回答

2

帶上+外部。在字符類中,它只是+符號。此外,躲過\

[|]+|[\\]+ 

而且,因爲你想只有一個字符全部更換,你可能更喜歡下面的正則表達式:

[|\\]+ 

它會變成Hello ||\\|| worldHello . world。而第一個將它變成Hello ... world

觀看演示:http://regexr.com?35ef0

+0

感謝您的描述。正則表達式[| \\] +正是我所需要的,測試它的鏈接也很好。 – user2510136

0

試試這個(JavaScript示例):

"Hello ||||| this || is a test |||".replace(/[|]+|[\\]+/g, ".") 

將輸出:

"Hello . this . is a test ." 
0

這似乎得到你想要的想用Javascript。

'Hello ||||| this |\\| is a test |||'.replace(/(\||\\)+/g, ' . ') 
0

嘗試......

"Hello ||||| this || is a test |||".replace(/\|+/g, ".");