我有一个数字字符串,例如14569927-4332-119-02。 我想将它从第一个' - '分隔符修改为下一个' - '分隔符。 结果只能是:'4332'。
我尝试了这个正则表达式:(^ - [0-9])但我并不完美。
我怎么能从字符串中修剪'4332'?
谢谢你&祝周末愉快!
答案 0 :(得分:1)
一些选择......
awk
:
$ string='14569927-4332-119-02'
$ awk -F- '{print $2}' <<< "$string"
4332
bash
:
$ string=${string%-*-*}
$ string=${string#*-}
$ echo "$string"
4332
cut
:
$ cut -d'-' -f2 <<< "$string"
4332
答案 1 :(得分:1)
谈到SAP和ABAP,使用正则表达式可能不是最佳选择 - 它可能为作者提供良好的掌握标志,但它使得这些东西对读者来说并不容易。在ABAP中,您可能会使用其他选项......
这是我的看法:
data: l_var type string value '14569927-4332-119-02',
lt_parts type standard table of string,
l_result type string.
split l_var at '-' into table lt_parts.
read table lt_parts into l_result index 2.
if sy-subrc ne 0.
" error handling --- not found...
endif.
实际上这些是两行而不是一个正则表达式,但是你正在做的事情要透明得多......
答案 2 :(得分:0)
尝试使用sed
:
$ echo "14569927-4332-119-02" | sed 's/[^\-]*\-\([^\-]*\)\-.*/\1/g'
4332