Поиск и замена регулярных выражений в плагине Autoblogged - PullRequest
0 голосов
/ 25 января 2012

Я использую Autoblogged, чтобы выдавать фид как пост в блоге. Мне нужно создать выражение reg, чтобы преобразовать заголовок элемента в вещи, которые я могу использовать в качестве метаданных. Я прикрепил экран серверной части, к которой у меня есть доступ. Любая помощь будет принята с благодарностью!

Вот примеры заголовка из ленты.

Учебное мероприятие первого типа, Нью-Мексико, Вайоминг, ноябрь 2012

Учебное мероприятие второго типа, Сиэтл, Вашингтон, ноябрь 2012

Мне нужно, чтобы это стало:

<what>Type One Training Event</what> <city>New New Mexico</city>, <%state>WY</state> <month>November</month> <year>2012</year>

<what>Type Two Training Event</what> <city>Seattle</city>, <state>WA</state> <month>November</month> <year>2012</year>

По сути, говорит: возьми все, что есть перед словом событие, и сделай это "что"

Возьми что-нибудь после слова event и перед запятой и сделай этот "город"

Возьмите две буквы после запятой и установите это "состояние"

Возьмите последние два слова и сделайте их месяц и год

Бэкэнд с автоблогом: enter image description here

Ответы [ 2 ]

0 голосов
/ 27 января 2012

У нас на самом деле есть электронное письмо в очереди, чтобы ответить вам сразу после того, как мы выпустим обновление v2.9.В обновлении исправлена ​​ошибка в функции регулярных выражений, но я решил продолжить и прокомментировать здесь, чтобы этот вопрос не был оставлен открытым.

Возможность извлекать информацию из канала является одной из самых крутых и мощных функций AutoBlogged, и это прекрасный пример того, что вы можете сделать с этими функциями.

Прежде всего, вот шаблоны регулярных выражений, которые вы бы использовали:

Что : (. *) \ STraining \ sEvent

Город : Обучение \ sEvent \ s ([^,] *)

Штат :. *, \ S ([AZ] {2})

Чтобы использовать их, вы создаете новые настраиваемые поля в настройках канала.Обратите внимание, что в пользовательских полях также используется тот же синтаксис , что и в шаблонах публикаций, поэтому вы можете использовать мощную функцию регулярного выражения для извлечения информации из канала.Вот как должны выглядеть поля:

Custom Fields

После создания этих настраиваемых полей вы можете использовать их в своих шаблонах сообщений, и они будут добавлены в качестве настраиваемых полей к вашему сообщению в WordPress.,

Как только вы настроите эти настраиваемые поля, вы можете использовать их в своем шаблоне сообщения как %what%, %city% или %state_code%.Как я упоминал ранее, это также создаст настраиваемые поля в вашем блоге в WordPress.Если вы этого не хотите, вы можете просто использовать %regex("%title%", "(.*)\sTraining\sEvent", "1")% вместо %what% непосредственно в шаблоне сообщения.

Краткое объяснение синтаксиса: Если вы используете %regex("%title%", "(.*)\sTraining\sEvent", "1")%, это означает следующее:

  • Получите эту информацию из поля% title%
  • Используйте шаблон регулярных выражений(.*)\sTraining\sEvent
  • Использовать ссылку на совпадение 1, часть (.*).
0 голосов
/ 25 января 2012

Возможно совпадение:

^(.* Event) (.*), ([A-Z]{2}) +(?i(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|June?|July?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)) +((?:19|20)\d{2})\b

РЕДАКТИРОВАТЬ : ваш комментарий выглядит так, как будто вы должны окружить свое регулярное выражение разделителями.Попробуйте:

/insert_above_regex_here/

Если вы хотите, чтобы регистр не учитывался, то:буквы.Если все в порядке, тогда дерзайте.Вы также пытаетесь изменить эту часть регулярного выражения на (?-i([A-Z]{2})), которая говорит "быть чувствительной к регистру для этой части", но это зависит от того, поддерживает ли этот движок (не волнуйтесь, вы получите ошибку, если не't).

Затем замените на:

<what>$1</what> <city>$2</city>, <state>$3</state> <month>$4</month> <year>$5</year>

Я не уверен, что такое регулярное выражение в этом интерфейсе, поэтому вы не сможете выполнить бит (?i вМесячное регулярное выражение (оно просто делает этот бит нечувствительным к регистру) - вам просто нужно быть осторожным, чтобы писать месяцы одной заглавной буквой и остальными строчными буквами, или вы можете изменить регулярное выражение, чтобы разрешить и верхний регистр.

...