|
|
|
Регулярные выражения
|
|||
|---|---|---|---|
|
#18+
andrey odegov, Здравствуйте , получается запрос такого типа: select * from text where regexp_like(text,q'~([^[:alpha:]-]|^) ([[:alpha:]]|[[:alpha:]]-|[[:alpha:]]+(-[[:alpha:]]+)?|-[[:alpha:]]+|[[:alpha:]]-) [^[:alpha:]-]((.*?[^[:alpha:]-])?\2([^[:alpha:]-]|$)){2,}~','ix'); Но он также выводит строки Я. Я Я Я Я . Я Как исправить не знаю + плохо понимаю как работают .*? и )? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2018, 11:11 |
|
||
|
Регулярные выражения
|
|||
|---|---|---|---|
|
#18+
Pol.kaплохо понимаю как работают .*? и )? https://www.rexegg.com/regex-quantifiers.html#cheat_sheet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2018, 11:47 |
|
||
|
Регулярные выражения
|
|||
|---|---|---|---|
|
#18+
andrey odegov https://www.rexegg.com/regex-quantifiers.html#cheat_sheet Ссылка вредна несоответствием диалекту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2018, 11:55 |
|
||
|
Регулярные выражения
|
|||
|---|---|---|---|
|
#18+
andrey odegov, Одиночный символ тоже считается словом , как раз одиночные символ и не выводятся ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2018, 12:05 |
|
||
|
Регулярные выражения
|
|||
|---|---|---|---|
|
#18+
andrey odegov, И в пределах одного предложения 3 раза , ограничением предложения считаются (. ! ? ) на счёт конца строки не уверен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2018, 14:53 |
|
||
|
Регулярные выражения
|
|||
|---|---|---|---|
|
#18+
andrey odegov, доброго времени суток. Заинтересовал этот пост, так как сам недавно начал изучать регулярные выражения. В продолжении данной темы: не могли бы помочь с пониманием по данным функциям? Условие такое: запрос должен выводить те записи, слово в которых повторяется строго больше двух раз (3 и более) в одном предложении, причём предложений может быть несколько (под предложением понимаем набор символов, в конце ограниченных "." или "?" или "!" или последний уникальный случай, где есть запись в виде одного единственного предложения, по типу стиха с знаками препинания, но не ограниченная ни одним из символов "." "?" "!") - почти как у автора данной темы, но с некоторым дополнением. Под пониманием "слова" есть некоторые сложности: оно может состоять из одной буквы, а также слова с тире ("-слово" или "слово-" или "одно-слово" или "слово") - это разные слова, причём регулярное выражение не должно учитывать отдельно взятую букву как слово в другом слове (по типу "Я гиря гиря" - не должен выводить). Составил такую регулярку: select* from text where regexp_like(txt, '(^|[^а-я])([а-я]+-[а-я]+|[а-я]+-|-[а-я]+|[а-я]+)[^!.?]*?[^а-я]\2[^!.?]*?[^а-я]\2[^а-я]', 'i') Но она не работает со словами с тире. Не могли бы вы помочь с тем, где её нужно дополнить или в каком месте её лучше переделать? Заранее спасибо. Для примера приведу некоторые данные: Надо надо надо. // должен вывести Надо-надо надо надо надо-надо. // не длолжен вывести Надо -надо надо- // не должен вывести Надо-надо надо. // не должен вывести Надо-надо надо надо-надо надо надо- ненадо надо- надо-ело. // не должен вывести Надо-надо надо надо-надо надо надо-надо. // должен вывести Надо надо- — надо- надо — надо-надо — надо-надо. // не должен вывести Надо- надо-надо — надо- надо — надо-надо — надо-надо // должен вывести Я гиря я. // не должен вывести Я гиря гиря я. // не должен вывести Я гиря я гиря я. // должен вывести Я. Я я. // не должен вывести Я я я // должен вывести Я. Я мясо Я. я Я. // не должен вывести позвони позвони позвонишь? // не должен вывести позвони позвонишь позвони? // не должен вывести позвони позвони позвон? // не должен вывести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 16:59 |
|
||
|
Регулярные выражения
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. SНадо надо надо. // должен вывестиНадо-надо надо надо-надо надо надо-надо. // должен вывестиНадо- надо-надо — надо- надо — надо-надо — надо-надо // должен вывестиЯ гиря я гиря я. // должен вывестиЯ я я // должен вывести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 23:05 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39708651&tid=1883407]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 340ms |

| 0 / 0 |
