尽可能多地匹配并替换为一个

时间:2013-07-02 19:52:46

标签: regex replace

我需要一个匹配尽可能多的特殊字符\|的正则表达式。之后我想用一个特殊字符替换匹配。我知道如何替换它们,但我不知道选择尽可能多的正确的正则表达式。

我尝试了一些变化,但说实话,我不知道我在做什么,需要一些帮助。

[|+]|[\+]

示例数据:

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

期望的结果:

Hello . this . is a test .

4 个答案:

答案 0 :(得分:2)

+带到外面。在字符类中,它只是+符号。另外,逃避\

[|]+|[\\]+

此外,由于您尝试仅使用一个字符替换它们,您可能更喜欢以下正则表达式:

[|\\]+

它会将Hello ||\\|| world变为Hello . world。而第一个会把它变成Hello ... world

请参阅演示:http://regexr.com?35ef0

答案 1 :(得分:0)

试试这个(Javascript示例):

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

将输出:

"Hello . this . is a test ."

答案 2 :(得分:0)

这似乎在Javascript中得到了你想要的东西。

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

答案 3 :(得分:0)

试试这个...

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