修剪两个分隔符之间的字符串

时间:2013-06-22 12:32:16

标签: regex

我有一个数字字符串,例如14569927-4332-119-02。 我想将它从第一个' - '分隔符修改为下一个' - '分隔符。 结果只能是:'4332'。

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

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

谢谢你&祝周末愉快!

3 个答案:

答案 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