0

我有一个文件,其中有包含一些模式的行

`XX3 DB3 DBB1 VDD VSS VSSS VDDS 反相器参数:ln=.045u wn=0.5 mm=mm'

`XX4 DBB1 DB3 VDD VSS VSSS VDDS 反相器参数:ln=.045u wn=.12u

`XX14 DBB1 DB_TBY VDD VSS VSSS VDDS 反相器参数:Mpar =(Something))

我需要将这些行替换为

`XX3 DB3 DBB1 VDD VSS VSSS VDDS 反相器

`XX4 DBB1 DB3 VDD VSS VSSS VDDS 反相器

`XX14 DBB1 DB_TBY VDD VSS VSSS VDDS 反相器

那就是我想删除参数之后的所有内容,它可以是任何东西,直到换行。

    foreach(@lines){
     $_ =~ s/params: .*?[a-z,A-Z,),0-9,mm,m]'/ /g;}

但是这里所有内容都在删除,但应该以 ' 结尾。由于我不知道所有模式都可以存在,因此这种技术是不可能的。

4

2 回答 2

2

看起来您的正则表达式太复杂了(因此,很可能是错误的)。如果您想在之后删除所有内容,params:请执行此操作。

for (@lines) {
  s/params:.+//;
  ...
}
于 2019-05-20T08:46:49.233 回答
1

如果要在末尾保留单引号,请执行以下操作:

for (@lines) {
  s/params:.+/'/;
  ...
}
于 2019-05-20T09:07:29.620 回答