我正在使用Autoblogged将博客作为博客文章提取。我需要创建一个reg表达式来将项目的标题转换为我可以用作元数据的东西。我附上了一个我可以访问的后端屏幕。任何帮助将不胜感激!
以下是Feed中标题的示例。
2012年11月WY新墨西哥州举办的第一届培训活动
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>
基本上说采取事件之前的任何内容并使其成为“什么”
在单词事件之后和逗号之前取任何东西并制作“城市”
用逗号后的两个字母表示“状态”
取最后两个字并制作月份和年份
自动记录后端:
答案 0 :(得分: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
位(它只是使这一点不区分大小写) - 你只需要要小心,然后用一个大写字母和其余的小写字母写下你的月份,或者你可以修改正则表达式以允许大写。
答案 1 :(得分:0)
我们实际上有一个队列中的电子邮件,一旦我们获得v2.9更新,就会直接回复您。更新修复了正则表达式功能中的错误,但我想我会继续在这里发表评论,所以这个问题不仅仅是保持开放。
从Feed中提取信息的功能是AutoBlogged最酷最强大的功能之一,这是您可以使用这些功能执行的完美示例。
首先,以下是您将使用的正则表达式模式:
什么 :(。*)\ sTraining \ sEvent
城市:Training \ sEvent \ s([^,] *)
州:。*,\ s([A-Z] {2})
要使用这些,请在Feed设置中创建新的自定义字段。请注意,自定义字段也使用与帖子模板相同的syntax,因此您可以使用强大的正则表达式功能从Feed中提取信息。这是字段的外观:
创建这些自定义字段后,您可以在帖子模板中使用它们,它们将作为自定义字段添加到WordPress中的帖子中。
设置完这些自定义字段后,您可以在帖子模板中将其用作%what%
,%city%
或%state_code%
。正如我之前提到的,这也将在WordPress的博客文章中创建自定义字段。如果您不想这样,则可以直接在帖子模板中使用%regex("%title%", "(.*)\sTraining\sEvent", "1")%
代替%what%
。
语法的快速解释:
如果您使用%regex("%title%", "(.*)\sTraining\sEvent", "1")%
,则意味着:
(.*)\sTraining\sEvent
(.*)
部分。