我有:
$content = file_get_contents('data.html');
preg_match_all('/<span class="ng-binding">.*?<\/span>/is', $content, $matches);
print_r(array_values(array_unique($matches[0])));
Array
(
[0] => 3 January 2018 - Month - Month of Circumstances
[1] => 2 February 2018 - Month - A New Advancement
[2] => 1 March 2018 - Month - The Threat
[3] => 31 April 2018 - Month - Month of Prediction
[4] => 30 May 2018 - Month - Seven Days
)
如何删除和替换字符,以便最终数组类似于...
Content.2017.S01E01.Month.of.Circumstances.HOTSTAR.mp4
Content.2017.S01E01.A.New.Advancement.HOTSTAR.mp4
Content.2017.S01E01.The.Threat.HOTSTAR.mp4
Content.2017.S01E01.Month.of.Prediction.HOTSTAR.mp4
Content.2017.S01E01.Seven.Days.HOTSTAR.mp4
答案 0 :(得分:0)
您可以进行2个preg_replace
呼叫,也可以使用preg_replace_callback
和preg_replace
。诸如.*-\s*(.*)
之类的正则表达式将提供所有内容,直到最后一个-
,然后\s*
将允许任何其他空白字符。然后,您将在第一个捕获组中拥有自己关心的部分。然后,使用该捕获组可以替换所有非字母数字字符。
$array = array('3 January 2018 - Month - Month of Circumstances',
'2 February 2018 - Month - A New Advancement',
'1 March 2018 - Month - The Threat',
'31 April 2018 - Month - Month of Prediction',
'30 May 2018 - Month - Seven Days');
foreach($array as $item) {
echo preg_replace_callback('/.*-\s*(.*)/', function($match){
return 'Content.2017.S01E01.' . preg_replace('/\W+/', '.', $match[1]) . '.HOTSTAR.mp4';
}, $item) . PHP_EOL;
}
注意\w
包含下划线,因此,如果您也想替换该特殊字符,请使用包含下划线的字符类代替\W
。这应该[\W_]
(使用量词)完成。
答案 1 :(得分:0)
您可以仅将preg_replace
与pattern
和replacement
的数组值一起使用。模式按数组中元素的顺序替换。因此,此代码中的第一个替换用.
替换空格,第二个替换将开头和结尾的文本添加到提取的名称中。
$array = array('3 January 2018 - Month - Month of Circumstances',
'2 February 2018 - Month - A New Advancement',
'1 March 2018 - Month - The Threat',
'31 April 2018 - Month - Month of Prediction',
'30 May 2018 - Month - Seven Days');
$new_array = array();
foreach ($array as $line) {
$new_array[] = preg_replace(array('/\s+/', '/^.*?-([\w.]+)$/'),
array('.', 'Content.2017.S01E01$1.HOTSTAR.mp4'),
$line);
}
print_r($new_array);
输出:
Array
(
[0] => Content.2017.S01E01.Month.of.Circumstances.HOTSTAR.mp4
[1] => Content.2017.S01E01.A.New.Advancement.HOTSTAR.mp4
[2] => Content.2017.S01E01.The.Threat.HOTSTAR.mp4
[3] => Content.2017.S01E01.Month.of.Prediction.HOTSTAR.mp4
[4] => Content.2017.S01E01.Seven.Days.HOTSTAR.mp4
)