#regex #perl #if-statement
#регулярное выражение #perl #if-оператор
Вопрос:
Я хочу заменить всю строку, если она соответствует шаблону в начале строки. Моя строка $foo = "I have a dog - cat"
. Теперь, если регулярное выражение совпадает с «У меня есть», строка заменяется на «ПРОВЕРЕНО»
Я пытался
$foo =~ tr /I have a/CHECKED/
Вывод CHECKED dog -cat
nad Я не хочу добавлять полное предложение в регулярное выражение. Например $foo =~ /I
, иметь Dog -cat/CHECKED
;
Ответ №1:
$foo = "I have a dog - cat"
$foo =~ s/I have a.*/CHECKED/
команда perl tr///
или y///
для транслитерации из буквы в букву
go https://perldoc.perl.org/perlop.html#Quote-Like-Operators
Ответ №2:
Вы должны сделать так, чтобы шаблон соответствовал всей строке, если вы хотите, чтобы вся строка была заменена:
$foo =~ s/.*I have a.*/CHECKED/;
В качестве альтернативы, просто присвоите строке новое значение, если оно соответствует шаблону:
$foo = 'CHECKED' if $foo =~ /I have a/;