Игнорирование символов в поиске с помощью ack

Я использую ack для поиска экземпляров PHP-функции «split(», которая теперь устарела. К сожалению, она вызывает экземпляры preg_split (которая все еще действительна), как я могу игнорировать эти результаты, продолжая искать « расколоть("?

ack --type=php split\\\(

Спасибо.


person crmpicco    schedule 30.03.2012    source источник


Ответы (3)


ack --type=php '[^_]split\('

Поскольку preg_split() имеет символ подчеркивания перед разбиением, просто используйте совпадение с отрицанием для подчеркивания.

person ghoti    schedule 30.03.2012

Ну, решение может состоять в том, чтобы сделать больше поиска/замены не для разделения, а для разделения, которому предшествует:

  • ;
  • пространство
  • вкладка
person ab_dev86    schedule 30.03.2012
comment
Это явно preg_split, который я хочу игнорировать - person crmpicco; 30.03.2012

Одним из способов грубой силы было бы использование флага -w, чтобы видеть только split как слово.

ack -w split

Это по-прежнему даст вам попадания в «разделение», которые на самом деле не являются вызовами функций, если они у вас есть. Но иногда нетехнологичный способ оказывается самым простым.

person Andy Lester    schedule 05.06.2012