-3

输入1:RC000030034

替换1:RC-000030034

输入2:RC100003282

替换2:RC1-00003282

希望在字符串的第一个 0 之前添加一个连字符。

  • 输入总是有 11 个字符。

  • 最终输出将始终为 12 个字符。

  • 连字符后永远不会有字母字符。

4

2 回答 2

0

基于此:“希望在字符串的第一个 0 之前添加一个连字符。”

javascript中的示例:

> var re = /^([^0]*)0(.*)$/
> "RC000030034".replace(re,"$1-$2")
'RC-00030034'

在 bash (echo + sed) 中:

$ echo 'RC00030034' | sed -e 's/^\([^0]*\)0\(.*\)$/\1-\2/'
RC-0030034
于 2018-05-18T14:42:25.453 回答
0
output = input.replace("0", "-0")

或您的语言的等效代码

大多数语言都为字符串提供了某种替换方法。上面的示例在 javascript 中工作,它将第一次出现的 '0' 替换为 '-0'。在 python 中,有一个 replace() 替换所有匹配项;在那里,您必须使用可选参数来指示最大数量:

output = input.replace("0", "-0", 1)

在 perl 中,您可以使用正则表达式:

$input =~ s/0/-0/;

将所有字符串放在一个文件中(每个字符串在单独的行中),您可以使用以下 shell 命令:

perl -ne 's/0/-0/; print' inputfile

现在,假设您的输入允许像 RC0A00001234 这样的字符串,其中连字符应该在第二个 0 之前,在 A 之后(因为我们'在连字符之后永远不会有字母字符')。然后命令必须更改为:

perl -ne 's/(0\d*)$/-$1/; print' inputfile
于 2018-05-18T14:42:40.240 回答