2015-12-24 2 views
2

Я пытаюсь сопоставить строку w/"function", а затем "вставить" в целом слово, что не есть "$ " между. Это означает, что он должен соответствоватьRegex: пытается совместить две строки * без * определенного символа между

function static insert() 

но не

function insertRecord($insert) 

Я попытался отрицательный предпросмотр/за таких, как:

function.*(?!\$).*\binsert\b 

, но ничего.

Я пробовал это по grep 2.6.3 на Ubuntu 15.10 и PhpStorm (последнее, в которое я помещал меньше акций). И да, я помещал свои регулярные выражения в одинарные кавычки для grep. Я также пробовал https://www.regex101.com, который, кажется, согласен, что я использую это неправильно. Я даже пытался сокращенные версии на сайте тестера, но я не знаю, какая часть

function.*(?!\$) 

он не понимает.

Согласованная проблема во всех моих экспериментах заключается в том, что она продолжает бить по линиям, где «$» предшествует «вставить».

ответ

2

Попробуйте это:

function[^$]*\binsert\b 

Это просто использует отрицание класса символов [^$] ограничить символы между ними, чтобы запретить любые знаки доллара.

Вы уже поняли, что вам нужны границы слов \b вокруг "insert".

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