PERL + точно соответствует строке (слева) в строке - PullRequest
0 голосов
/ 24 июня 2010

У меня проблема со следующей командой perl Как сопоставить все строки «1234» в файле, но если некоторые символы объединены до «1234», то это не будет соответствовать, моя проблема заключается в следующем: если строка «1234» в середине строки, то она не совпадает, почему?

Команда perl:

perl  -pe 's/OLD/NEW/ if /^1234/' file

Пример того, что нужно сопоставить:

a ass 1234= OLD
bbb ddd 1234= OLD
 1234= OLD

Пример того, что не нужно совпадать:

a1234=  OLD
sss q1234=  OLD

Ответы [ 2 ]

2 голосов
/ 24 июня 2010

Измените ^ на \b.Это будет соответствовать, только если 1234 является началом слова.(При необходимости см. perldoc perlre для получения дополнительной информации о том, что составляет «слово»!)

0 голосов
/ 24 июня 2010

^ соответствует «началу строки».Попробуйте удалить этот символ в регулярном выражении.Замените его пробелом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...