我有一个数字字符串,例如 14569927-4332-119-02。我想将其从第一个“-”分隔符修剪到下一个“-”分隔符。结果只是:'4332'。
我试过这个正则表达式: (^-[0-9]) 但我并不完美。
我怎么能从字符串中修剪这个'4332'?
谢谢你,周末愉快!
我有一个数字字符串,例如 14569927-4332-119-02。我想将其从第一个“-”分隔符修剪到下一个“-”分隔符。结果只是:'4332'。
我试过这个正则表达式: (^-[0-9]) 但我并不完美。
我怎么能从字符串中修剪这个'4332'?
谢谢你,周末愉快!
谈到 SAP 和 ABAP,使用 regex 可能不是最好的选择——它可能为作者提供了精通的良好标志,但它让读者不容易。在 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.
实际上,这是两行而不是一个正则表达式,但是您正在做的事情要透明得多...
几个选项...
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
尝试使用sed
:
$ echo "14569927-4332-119-02" | sed 's/[^\-]*\-\([^\-]*\)\-.*/\1/g'
4332