MyTetra Share
Делитесь знаниями!
Краткий урок по регулярным выражениям
Время создания: 12.06.2010 01:09
Раздел: Компьютер - Программирование - Регулярные выражения
Запись: xintrea/mytetra_syncro/master/base/0000001517/text.html на raw.github.com

(04:48:21) InterSphere: далется это так

(04:48:36) InterSphere: dict add "СЛОВО КОТОРОЕ ПИШУТ БОТУ" ОТВЕТ БОТА

(04:48:45) InterSphere: то есть слово в кавычках, а ответ просто так

(04:48:48) InterSphere: идем далее

(04:49:00) Rafer: ок

(04:49:05) InterSphere: например слово "колбаса"

(04:49:10) InterSphere: то есть

(04:49:20) InterSphere: dict add "колбаса" вкусно

(04:49:26) InterSphere: тогда получаем

(04:49:40) InterSphere: боту говорят колбосас, а он отвечает вкусно

(04:49:51) Rafer: ясно Жень)

(04:49:54) Rafer: я понял)клева

(04:49:58) InterSphere: но люди могут написать не колбоса, а кАлбАса

(04:50:06) Rafer: ну да

(04:50:13) InterSphere: тогда у нас две буквы

(04:50:14) InterSphere: А и О

(04:50:17) InterSphere: делаем так

(04:50:28) InterSphere: к[ао]лб[ао]са

(04:50:39) Rafer: ясно)

(04:50:40) InterSphere: то есть бот из [ ] выберает одну из букв

(04:50:48) InterSphere: идем далее

(04:51:09) InterSphere: если пользователь написал например: хочешь колбасу?

(04:51:24) InterSphere: то здесь уже не колбасА, а колбасУ

(04:51:30) Rafer: ну да

(04:51:34) InterSphere: любой символ можно заменить как .?

(04:51:37) InterSphere: получаем

(04:51:54) InterSphere: dict add "к[ао]лб[ао]с.?"

(04:52:09) InterSphere: то есть бот сработает и на колбасА и на колбасУ и на колбасЫ

(04:52:16) InterSphere: но не сработает на колбасАА

(04:52:21) InterSphere: так как символ только один

(04:52:28) InterSphere: можно поставить два символа

(04:52:36) InterSphere: dict add "к[ао]лб[ао]с.?.?"

(04:52:44) Rafer: ясно)

(04:52:49) InterSphere: идем далее

(04:53:00) InterSphere: бот будет выискивать только одно слово

(04:53:23) InterSphere: то есть он среагирует только если слово одно

(04:53:34) InterSphere: а если будет предложение, то бот не найдет слова, так как символов много

(04:53:46) InterSphere: значит перед киолбасой и после нее нужно добавить любые буквы

(04:53:47) Rafer: сповтарил баш 2 раза)

(04:53:51) InterSphere: .* - любые буквы

(04:53:57) InterSphere: то есть получаем

(04:54:14) InterSphere: dict add ".*к[ао]лб[ао]с.?.?.*" вкусно

(04:54:22) Rafer: тема ясно я се скопирну

(04:54:29) InterSphere: но человек может так же сказать и поколбасим

(04:54:33) InterSphere: а бот скажет вкусно

(04:54:35) InterSphere: что не логично

(04:54:46) Rafer: ну да)

(04:54:52) InterSphere: значит нам нужно ограничить слово. показать, где начало, а где конец

(04:54:59) InterSphere: \b - начало или конец слова

(04:55:01) InterSphere: получаем

(04:55:18) InterSphere: dict add ".*\bк[ао]лб[ао]с.?.?\b.*" вкусно

(04:55:26) InterSphere: вот это и есть регулярные выражения)

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования