【发布时间】:2019-03-28 06:51:24
【问题描述】:
我在 bash 中有如下字符串:
string=P001_WA05_1_i5-_i7-SI_GA_A5_1_S1_*_
我想将W[[:alpha:]]+([0-9]) 之后的_[0-9]_ 替换为星号,将SI_GA_[[:alpha:]]+([0-9]) 之后的[0-9]_[[:alpha:]][0-9] 替换为星号。
这个字符串的期望输出是P001_WA05*i5-_i7-SI_GA_A5_*_*_
如何做到这一点?我在正则表达式中包含了上述格式,但我不确定如何用星号替换指示模式之后的指示值。
谢谢, 杰克
【问题讨论】:
-
$string似乎与WA[[:alpha:]]+([0-9])模式不匹配,因为“WA”后面没有跟字符串中的字母字符。 -
@tshiono 抱歉,已更正 - 它应该是 W[[:alpha:]]...
-
嗯..应该是
W[[:alpha:]][0-9]+吧? -
@tshiono 这可能是正确的,我对正则表达式不太擅长。我的意思是 W[[:alpha:]]+([0-9]) 但也许 W[[:alpha:]][0-9]+ 是正确的。本质上,我想要 W 加上一个 alpha 字符和多个数字。