2013-09-18 5 views
-1

У меня есть следующий код, например:Регулярное выражение справки: символ поиска

SELECT Something, ?, Count('Something2') AS Total FROM table WHERE Id=? AND Time>NOW() FOR UPDATE 

Теперь мне нужно искать ? между SELECT и FROM. Как я могу это сделать? Что-то вроде SELECT \? FROM

+0

Что значит «нужно искать»? Что ты пытаешься сделать ? – alfasin

+1

Мне нужно найти '?' символ внутри Notepad ++ – Jordy

+0

А? Что ты пытаешься сделать? Вы хотите регулярное выражение? Чтобы определить, есть ли вопросительный знак где-нибудь между выбором и из? Или что? – Dan

ответ

1

Используйте lookahead для соответствия только символу "?"

(\?)(?=.*FROM.*) 

обязательно используйте нечувствительны к регистру, так что вы не пропустите запросы, в которых from написано в нижнем регистре.

Большинство ароматизаторов регулярных выражений не поддерживают lookbehind с незафиксированным размером - поэтому вы не можете использовать SELECT в регулярном выражении.

+0

Спасибо, это регулярное выражение работает с PHP, но не с функцией поиска Notepad ++. Как это решить? – Jordy

+0

@Jordy странно, но вчера у меня была такая же проблема (с Notepad ++): http://stackoverflow.com/a/18861906/1057429 не получил возможность проверить его на другом компьютере, хотя ... – alfasin

+0

Странно, я обновил Notepad ++ до последней версии, и теперь это работает ... Спасибо! – Jordy

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