我正在研究一个 php 脚本,该脚本从 web 服务中获取电影列表,并将它们存储到数据库中。
没什么特别的,我现在唯一需要解决的是一个排序标题,它是电影的标题(必要时)从通常的“ The ”/“ An ”/“ A ”中剥离。
例如
- 黑暗骑士
- 教育
- 一次分离
应该成为
- 黑暗骑士
- 教育
- 分离
就这么简单,但考虑到我在正则表达式领域的菜鸟,我正在寻求帮助。希望我说清楚了。如果您发现自己有疑问,请要求澄清。
你可以试试
$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
试试这个:
^(The|An|A) (.+)$
用于\2
返回不带定冠词的电影标题,例如Dark Knight
或用于\2, \1
返回Dark Knight, The