Регулярное выражение — заменить заглавные буквы строчными и некоторые особенности

Я бы спросил, может ли кто-нибудь сказать мне, как найти и заменить все буквы в верхнем регистре (* примечание: не первая буква в слове) и заменить их строчными, а также между тегами span. Я привожу пример, каким должен быть результат

StreEt-> Stre<span>e</span>t

TeAcher -> Te<span>a</span>cher

DOg -> D<span>o</span>g

SchoOl -> Scho<span>o</span>l

Я бы предпочел сделать это прямо в Notepad ++.

Но если это невозможно только с помощью регулярного выражения, некоторые советы о том, как сделать это в цикле php или javascript, будут великолепны.

Заранее спасибо!

  • Я знаю, что публикация темы без каких-либо попыток не допускается, поэтому извините, но я не знаю, как это могло произойти.

2

Решение

С Notepad ++ вы можете сделать:

Найти то, что: \B([A-Z]+)\B
Заменить: <span>\L$1</span>

Удостоверься что Case sensitive проверено.

Но это не работает с кириллицей.

Вот способ сделать работу с php:

$str = preg_replace_callback("/\B(\p{Lu}+)\B/u",
function ($m) {
return "<span>".mb_strtolower($m[1], 'UTF-8')."</span>";
},
"SchoOl чУствую");
echo $str,"\n";

Выход:

Scho<span>o</span>l ч<span>у</span>ствую
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]