2013-07-02 24 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, ".");