0

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

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

[|+]|[\+]

示例数据:

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

期望的结果:

Hello . this . is a test .
4

4 回答 4

2

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

[|]+|[\\]+

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

[|\\]+

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

见演示:http ://regexr.com?35ef0

于 2013-07-02T19:56:30.553 回答
0

尝试这个...

"Hello ||||| this || is a test |||".replace(/\|+/g, ".");
于 2013-07-03T13:19:53.200 回答
0

试试这个(Javascript 示例):

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

将输出:

"Hello . this . is a test ."
于 2013-07-02T19:56:31.257 回答
0

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

'Hello ||||| this |\\| is a test |||'.replace(/(\||\\)+/g, ' . ')
于 2013-07-02T19:56:44.020 回答