0

我正在研究一个 php 脚本,该脚本从 web 服务中获取电影列表,并将它们存储到数据库中。

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

例如

  • 黑暗骑士
  • 教育
  • 一次分离

应该成为

  • 黑暗骑士
  • 教育
  • 分离

就这么简单,但考虑到我在正则表达式领域的菜鸟,我正在寻求帮助。希望我说清楚了。如果您发现自己有疑问,请要求澄清。

4

2 回答 2

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
于 2012-11-29T14:16:35.050 回答
0

试试这个:

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

用于\2返回不带定冠词的电影标题,例如Dark Knight

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

于 2012-11-29T14:25:21.007 回答