2010-06-24 2 views
-3

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

Perl-команда:

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

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

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

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

a1234= OLD 
sss q1234= OLD 
+1

Остановить отправку дубликатов. – Ether

ответ

0

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

2

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

+0

У меня проблема, когда параметр * .55555 , тогда его не совпадают ??? – yael

+2

Вы отредактировали вопрос в основном по сравнению с предыдущим, и теперь ответы каждого не имеют смысла ... Я думаю, что было бы лучше вернуть ваш вопрос к тому, как это было до этого, а затем задать новый вопрос с новой проблемой. .. если вы разместите ссылку здесь, я уверен, что каждый, кто посмотрел на этот вопрос, посмотрит на этот вопрос :-) – psmears

+0

Я вернул его к предыдущему вопросу, так как яэль перепросил новый вопрос. http://stackoverflow.com/questions/3110329/perl-how-to-match-special-characters/3110368#3110368 –

Смежные вопросы