3

我有一个数字字符串,例如 14569927-4332-119-02。我想将其从第一个“-”分隔符修剪到下一个“-”分隔符。结果只是:'4332'。

我试过这个正则表达式: (^-[0-9]) 但我并不完美。

我怎么能从字符串中修剪这个'4332'?

谢谢你,周末愉快!

4

3 回答 3

2

谈到 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.

实际上,这是两行而不是一个正则表达式,但是您正在做的事情要透明得多...

于 2013-06-22T16:46:25.127 回答
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
于 2013-06-22T13:52:01.877 回答
0

尝试使用sed

$ echo "14569927-4332-119-02" | sed 's/[^\-]*\-\([^\-]*\)\-.*/\1/g'
4332
于 2013-06-22T12:39:15.857 回答