使用正则表达式标准化电影标题

时间:2012-11-29 14:09:03

标签: php regex

我正在开发一个PHP脚本,它从一个电影列表中获取 webservice和store'em到数据库中。

没什么特别的, 我现在要解决的唯一问题是排序标题这是一个标题 从通常的' '/' An '/' A '剥离(必要时)电影。

e.g。

  • 黑暗骑士
  • 教育
  • 分离

应该成为

  • 黑暗骑士
  • 教育
  • 分离

这很简单,但考虑到我在正则表达式领域的无聊,我正在呼唤帮助。 希望我清楚自己。如果您发现自己有疑问,请要求澄清。

2 个答案:

答案 0 :(得分:2)

你可以尝试

$titles = array("The Dark Knight","An Education","A Separation");
$words = array('a','the','an');
$regex = '/\b^(' . implode('|', $words) . ')\b/i' ;

echo "<pre>";
foreach ( $titles as $title ) {
    echo preg_replace($regex, '', $title), PHP_EOL;
}

输出

 Dark Knight
 Education
 Separation

答案 1 :(得分:0)

试试这个:

^(The|An|A) (.+)$

使用\2返回没有明确文章的电影片名,例如Dark Knight

或使用\2, \1返回Dark Knight, The