Регулярное выражение для удаления не русских слов из текста

palarmaz
На сайте с 05.04.2010
Offline
125
4708

Не знаю как сделать помогите!!! Есть такая строка

<h1> Что действуют против unerwunschte рекламных вызовов? </h1>

Нужно удалять все немецкие, а слова в тегах <н1>.

VoV@
На сайте с 22.09.2007
Offline
196
#1

Попробуйте условие для поиска: "/^[a-zA-Z]".

Или вы полный код хотите получить? Тогда вам сюда: http://phpclub.ru/detail/article/regexp_1

⭐ Разработка Андроид-приложений (Xamarin C#). ⭐ Разработка ASP.NET (WebForms, MVC, WebAPI, Core). ⭐ Цой жив!
juniorspecialistphp
На сайте с 08.08.2010
Offline
25
#2

Если все слова в тегах то вот

$str = preg_replace('/<h1>(.*?)<\/h1>/','',$str);
, а если удалить немецкие слова в строке
$str = preg_replace('/([a-z]*)/','',$str);
Пишу скрипты любой сложности на РНР. (http://elagin.su)
[Удален]
#3

поставьте немецкую локаль и preg_replace'ом

J
На сайте с 28.03.2010
Offline
106
#4

А работающий код, который делает именно то, что вам надо - т.е. удаление только внутри тэгов h1 и нигде более, вот:

<?php

header('Content-type: text/html;charset=utf-8');

$str ='<h1>Мама мыла white ЬЦДЯьцд раму</h1> раз ЬЦДЯьцд два три <h1>Эники беники ели variniki</h1>';

$line = preg_replace_callback(

'|<h1>(.*?)</h1>|',

create_function(

'$matches',

'return "<h1>".preg_replace("![A-Za-zЬЦДЯьцд]!su","",$matches[1])."</h1>";'

),

$str

);

echo $line;

?>

Если работаете не в юникоде,то модификатор u в регулярном выражении надо убрать. А вместо русских букв в регулярке, которые тут неудачно скопипастились, должны быть немецкие спецсимволы с умляутами.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий