我有以下格式的字符串列表(xxx可以是任何字母数字字符):
xxx_xxx_ab_abcyyy_xxx_xxx:
xxx_xxx_jkl_mnoyyy_xxx_xxx:
xxx_xxx_abcyyy_xxx_xxx:
我正在尝试使用sed捕获第二个'_'之后的部分,直到该部分的结尾以yyy结尾,是否还有其他部分(例如 ab 和 jkl )。
我正在使用以下命令:
sed -r 's/.*_(.+yyy)_.*:/\1 /':
但是我一直在获取整个字符串。 理想的输出应该是(对于示例中的这三个字符串):
ab_abcyyy
jkl_mnoyyy
abcyyy
任何帮助将不胜感激。
答案 0 :(得分:0)
能否请您尝试以下。考虑到您的Input_file与显示的样本具有相同的模式。
label3.layer.borderWidth = 2.0;
label3.layer.cornerRadius = 8;
答案 1 :(得分:0)
尝试以下模式:([a-zA-Z0-9]+_){2}([a-zA-Z0-9_]*yyy)[a-zA-Z0-9_]*:
。您需要第二个捕获组(\2
)。
([a-zA-Z0-9]+_){2}
将确保您首先捕获两个部分,然后立即开始捕获组,直到您放弃yyy
。
尝试Demo。