У меня есть эта строка и теперь вы хотите заменить не только точки и подчеркивание пробелом. Теперь я также заменил бы слово «немецкий» (без кавычек) пустой строкой.регулярное выражение - заменить слово пробелом
Может ли кто-нибудь помочь?
preg_replace('/\(.*?\)|\.|_/i', ' ',
Лучшие регс
Edit:
public function parseMovieName($releasename)
{
$cat = new Category;
if (!$cat->isMovieForeign($releasename))
{
preg_match('/^(?P<name>.*)[\.\-_\(](?P<year>19\d{2}|20\d{2})/i', $releasename, $matches);
if (!isset($matches['year']))
preg_match('/^(?P<name>.*)[\.\-_ ](?:dvdrip|bdrip|brrip|bluray|hdtv|divx|xvid|proper|repack|real\.proper|sub\.?fix|sub\.?pack|ac3d|unrated|1080i|1080p|720p|810p)/i', $releasename, $matches);
if (isset($matches['name']))
{
$name = preg_replace('/\(.*?\)|\.|_/i', ' ', $matches['name']);
$year = (isset($matches['year'])) ? ' ('.$matches['year'].')' : '';
return trim($name).$year;
}
}
return false;
}
Строка, например "MovieName немецкого 2015", но выход должен быть "MovieName 2015" (без кавычек)
Решено:
Изменить сейчас линия preg_replace('/\(.*?\)|\.|_/i', ' ', $matches['name']);
к $name = preg_replace('/\h*\bGerman\b|\([^()]*\)|[._]/', ' ', $matches['name']);
Спасибо @ Wiktor Stribiżew
Какая у вас линия? Просто угадайте: 'str_replace ('German'," \ n ", preg_replace ('/ \ (. *? \) | \. | _/I', '', line))' –
См. Мое редактирование, это целая функция. – BASF
Да, но он не подлежит компиляции. Я не могу воспроизвести проблему. Таким образом, я могу только предложить использовать '$ name = str_replace ('German'," \ n ", preg_replace ('/ \ (. *? \) | \. | _/I', '', line))' вместо из '$ name = preg_replace ('/ \ (. *? \) | \. | _/i', '', $ matches ['name']);'. Если вы хотите ответить как «он не работает», пожалуйста, укажите свою строку, ваш ожидаемый результат. –