Java正则表达式和sed不一样......?

fil*_*ppo 5 regex string sed

获取这些字符串:

00543515703528
00582124628575
0034911320020
0034911320020
005217721320739
0902345623
067913187056
00543515703528
Run Code Online (Sandbox Code Playgroud)

在java中应用此exp : ^(06700|067|00)([0-9]*).

我的目的是从字符串的开头删除前导"06700,067和00".

它在java中很酷,第2组总是有我想要的数字,但是sed它不是一样的:

$ cat strings|sed -e 's/^\(06700|067|00\)\([0-9]*\)/\2/g'
00543515703528
00582124628575
0034911320020
0034911320020
005217721320739
0902345623
067913187056
00543515703528
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

干杯,

F.

Ope*_*uce 5

使用扩展正则表达式时,还需要省略\before ().这对我有用:

sed -r 's/^(06700|067|00)([0-9]*)/\2/g' strings 
Run Code Online (Sandbox Code Playgroud)

另请注意,无需单独拨打电话 cat