RegExp в Xcode: исключить совпадения из набора результатов? - PullRequest
4 голосов
/ 08 ноября 2010

Поиск правильного синтаксиса регулярного выражения для использования в «Project Find» Xcode для получения всех вхождений «nslog», но не «// nslog» Может выполнять каждый поиск независимо, но не уверен, как их «связать».

Ответы [ 2 ]

6 голосов
/ 08 ноября 2010

Обычный способ сказать «не следует» с регулярными выражениями - это использование конструкции (?<!...).Так что вполне возможно, что

(?<!//)nslog

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

В случае, если вы не можете делать отрицательные взгляды, шаблон, который гарантированноработа в любом месте - это

[^/][^/]nslog

Однако это не означает то же самое, что и предыдущий шаблон!до этого должно быть два не слеша.Это на самом деле разные;рассмотрим случай, когда nslog происходит в начале строки.Первый шаблон будет успешным, а второй - неудачным.

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

  1. Выберите альтернативный разделитель шаблона;например, #(?<!//)nslog#, если вам разрешено выбирать октоторп в качестве ограничителя цитирования вокруг вашего шаблона.
  2. Отменить любые косые черты, используемые внутри, и вызвать LTS (синдром Leaning Toothpick);например, (?<!\/\/)nslog.
  3. Использовать некоторую форму числового экранирования, например \057 для восьмеричного или \x2F для шестнадцатеричного;например, (?<!\x2F\x2F)nslog.

Надеюсь, это поможет.

0 голосов
/ 08 ноября 2010

Самое близкое, я думаю, вы можете найти, например, [^/]NSLog - который найдет NSLog, но не //NSLog.Конечно, он все равно найдет // NSLog, что может или не может работать для вас.

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