给定一个包含多个字符串的文件(每行一个) - 其中将包含以下两个字符串:
de12_QA_IR_OS_HV
de12_IR_OS_HV
(唯一的区别是“QA_”在正确的位置)。
如果正在处理的当前行包含上述某个行,我需要执行一些操作。 如果是,我应该使用没有“QA_”子字符串的字符串值。
我正在使用以下正则表达式来检测值/de12_(QA_)?IR_OS_HV/
但是如果使用相同的正则表达式,是否有一种方法可以删除“QA_”?
答案 0 :(得分:1)
您可以捕捉QA _之前和之后的内容:
if (/(de12_)(QA_)?(IR_OS_HV)/) {
print $1 . $3, "\n";
或者,使用替换
if (s/de12_(QA_)?IR_OS_HV/de12_IR_OS_HV/) {
print $_, "\n";
}
但实际上,如果正则表达式匹配,你知道要使用什么字符串:
if (/de12_(QA_)?IR_OS_HV/) {
print "de12_IR_OS_HV\n";
}