0

我正在使用 Autoblogger 将提要作为博客文章拉入。我需要创建一个 reg 表达式来将项目的标题转换为我可以用作元数据的东西。我附上了我可以访问的后端屏幕。任何帮助将不胜感激!

以下是提要中的标题示例。

第一类培训活动 新墨西哥州,怀俄明州 2012 年 11 月

第二类培训活动 华盛顿州西雅图市 2012 年 11 月

我需要它变成这样:

<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 之前的任何内容并使其成为“what”

在单词 event 之后和逗号之前取任何东西,然后使那个“城市”

取逗号后的两个字母,并使其成为“状态”

取最后两个词,使 em 月份和年份

自动博客后端:在此处输入图像描述

4

2 回答 2

0

也许匹配:

^(.* 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/

如果您想要不区分大小写,请执行以下操作:

/insert_above_regex_here_but_remove_(?i_and_matching_)/i

但是,如果您不区分大小写,您的状态([A-Z]{2})也将匹配两个小写字母。如果这没问题,那就去吧。您还可以尝试将正则表达式的那部分更改(?-i([A-Z]{2}))为“对此部分区分大小写”,但这取决于该引擎是否支持它(别担心,如果不支持,您会收到错误消息) .

然后替换为:

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

我不确定该界面有什么风格的正则表达式,所以你可能无法(?i在 Month 正则表达式中做这件事(它只是让那个位不区分大小写)——你只需要小心然后写你的月份一个大写字母,其余小写,或者您也可以修改正则表达式以允许大写。

于 2012-01-25T00:19:02.453 回答
0

实际上,一旦我们的 v2.9 更新发布,我们就会在队列中直接回复您的电子邮件。该更新修复了正则表达式功能中的一个错误,但我想我会继续在这里发表评论,所以这个问题不只是悬而未决。

从提要中提取信息的能力是 AutoBlogged 最酷和最强大的功能之一,这是您可以使用这些功能做什么的完美示例。

首先,这是您将使用的正则表达式模式:

什么:(.*)\sTraining\sEvent

城市: Training\sEvent\s([^,]*)

状态:.*,\s([AZ]{2})

要使用这些,您需要在 Feed 设置中创建新的自定义字段。请注意,自定义字段也使用与帖子模板相同的语法,因此您可以使用强大的正则表达式功能从提要中提取信息。这是字段的外观:

自定义字段

创建这些自定义字段后,您可以在帖子模板中使用它们,它们将作为自定义字段添加到您在 WordPress 中的帖子中。

设置这些自定义字段后,您可以在帖子模板中将它们用作 %what%,%city%%state_code%. 正如我之前提到的,这也将在您的 WordPress 博客文章中创建自定义字段。如果您不想这样,您可以直接在帖子模板中使用%regex("%title%", "(.*)\sTraining\sEvent", "1")%,而不是直接使用。%what%

语法的快速解释:如果使用%regex("%title%", "(.*)\sTraining\sEvent", "1")%它意味着:

  • 从 %title% 字段获取此信息
  • 使用正则表达式模式(.*)\sTraining\sEvent
  • 使用匹配参考 1,(.*)零件。
于 2012-01-27T05:18:34.263 回答