Regex урок 1 — начало и конец строки

Создавая трубы яху, вы не обойдетесь без языка регулярных выражений, или regular expressions или сокращенно regex. Этот цикл уроков будет уделен языку regex, и примерам его работы в трубах Yahoo.

Первый урок со строкой, я пожалуй начну с выделения слов. Граница слова, на языке регулярных выражений записывается так \b. Если хотите, можно незримо представить вначале и вконце любого слова этоу пару символов. Как этим можно воспользоваться в наших пайпах? Для этого откроем холст, и возьмем ленту с любого сайта, я решил взять ленту splogoved.ru/feed. 

Вытащив на рабочий холст yahoo pipes инструмент fetch feed забиваем в него адрес фида, и получаем результат. Будем работать с целой новостью, благо сплоговед предоставляет полную ленту. В структуре RSS полная новость этого сайта находится в  content:encoded

content:encoded - полная новость

content:encoded - полная новость

Теперь давайте попробуем заменить все слова то в полной новости например на 000000Обратите внимание на последний абзац текста, в нем встречается слово то 2 раза, при чем один раз вначале предложения с заглавной буквы.

Слово "то" встречается 2 раза

Слово "то" встречается 2 раза

Для замены будем использовать модуль regex, в поле in запишем item.content:encoded, именно там и находится полная новость фида. Если в поле replace вставить то, модуль найдет все сочетания где сначала идет все что угодно, потом т,  затем о, а затем опять все что угодно.

все сочетания с "то"

все сочетания с "то"

Я подчеркнул все сочетания, сюда входят и «просто» и «вместо» и «заработок». Для того, чтобы сузить круг поиска нужно указать модулю regex что буква «т» — является началом слова, а буква «о» — концом слова, на языке регулярных выражений, записывается это так \bто\b. Я не зря взял последний абзац, потому как здесь присутствует слово «То» начинающееся с заглавной буквы, а regex чувствителен к регистру.

Найдено "то" с маленькой буквы

Найдено "то" с маленькой буквы

Для того чтобы задать условия поиска первой буквы слова «то» с заглавной или прописной, запишем выражение так \b[Тт]о\b что значит ищем слово, которое начинается с заглавной или прописной буквы «т», за которой следует закрывающая слово буква «о».

Найдены все слова "то"

Найдены все слова "то"

Итак мы нашли все слова «то» не находящиеся внутри других слов, и начинающиеся с заглавных букв.

Резюме:

\b — граница слова.

[Тт] - поиск с одним из возможных результатов.

Написать ответ