Как заменить некоторые шаблоны пробелами в Perl? - PullRequest
0 голосов
/ 20 мая 2019

У меня есть файл, в котором есть строки, содержащие некоторые шаблоны как

`XX3 DB3 DBB1 VDD VSS VSSS VDDS параметры инвертора: ln = .045u wn = 0,5 мм = мм '

`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;}

Но здесь все удаляется, но оно должно заканчиваться на '. Поскольку я понятия не имею о том, что могут присутствовать все паттерны, эта техника невозможна.

Ответы [ 2 ]

2 голосов
/ 20 мая 2019

Похоже, ваше регулярное выражение слишком сложно (и, следовательно, слишком вероятно, что оно будет неверным).Если вы хотите удалить все после params:, просто сделайте это.

for (@lines) {
  s/params:.+//;
  ...
}
1 голос
/ 20 мая 2019

Если вы хотите сохранить одинарную кавычку в конце, выполните:

for (@lines) {
  s/params:.+/'/;
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...