Гость
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / пара регулярочек / 1 сообщений из 1, страница 1 из 1
16.01.2022, 01:51
    #40126981
Неочень
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
пара регулярочек
Приветствую
Не силён в регулярных выражениях, но надо бы сделать пару примерно таких проверок (все совпадения с oracle случайны :)

1. найти подстроку вида
Код: plsql
1.
"from any "/*или*/ "delete( from) any "/*но не*/ "any.any" /*(2 любых слова через точку)*/


то есть допустимо и delete any и delete from any. Можно это упростить предварительно сделав replace("delete from", "delete"), но это наверно для слабых духом:)
например
Код: plsql
1.
2.
3.
4.
5.
6.
"1 from dual a" => "from dual"
"2 from sys.dual b" => null
"3 delete dual c" => "delete dual"
"4 delete sys.dual d" => null
"5 delete from dual e" => "delete from dual"
"6 delete from sys.dual f" => null


моя лучшая догадка
Код: plsql
1.
"(from|delete( from)?) (?!\w+\.)"


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

2. найти подстроку вида
Код: plsql
1.
"any.any(" /*но не*/ "any.any.any(" /*и не*/ "any("


например
Код: plsql
1.
2.
3.
"call put(1" => null
"begin dbms.put(2" => "dbms.put("
"; sys.dbms.put(3" => null


моя лучшая догадка
Код: plsql
1.
"[^\w+\.](?<!\w+\.\w+)\("


не работает вообще, т.к. в проверке ?<! недопустимы квантификаторы типа +
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / пара регулярочек / 1 сообщений из 1, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]