正则表达式修剪字符串中的一些不需要的字符

时间:2013-06-06 09:24:16

标签: regex linux string unix

给出以下表达式:

SS-56789/2013/20

ST:MM-2ZTES/TEST

MM-2FKAP/TEST

ZZ/128TEST

TK:ZZ-TEST

依旧......

我想修剪'MM','SS','ZZ'和'MM-','SS-','ZZ-'字符串。

我之前尝试过这个:SS-+所以我可以修剪包含所有'SS-'字符串的字符串。

是否有机会仅在一个表达式中修剪上述所有字符串?

或者我必须为此任务编写6个表达式行吗?

2 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

(?:SS|MM|ZZ)-?

用空字符串替换匹配的项目以删除不需要的字符。

答案 1 :(得分:1)

您也可以尝试这种模式:

((M{2}|S{2}|Z{2})-?)

并且用空字符串调用Replace将修剪它们。

如果要剪裁的字符串始终位于行前缀的开头,则^的模式如下:

^((M{2}|S{2}|Z{2})-?)