2015-05-18 5 views
2

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

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 loop или javascript, были бы замечательными.

Спасибо заранее!

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

Вы можете сделать это в CSS без использования PHP https://developer.mozilla.org/en/docs/Web/CSS/text-transform – DanielM

+0

Будут ли все входные данные, которые вы получаете, всегда иметь первую букву в верхнем регистре? –

ответ

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>ствую 
+0

Хорошо, это работает отлично, но теперь я нашел дополнительную проблему в моем случае. Я дал вам пример с английскими словами, но на самом деле мне нужно сделать для кириллицы и это не вписывается в [AZ] :( Примера: чУствует - ч у ствует –

+0

@ АнжелМилены: Попробуйте добавить кириллицы в классе символов. – Toto

+0

@ АнжелМиленов: Я думаю, что это невозможно сделать в Npp. См. мое редактирование, я дал php-скрипт, который выполняет эту работу. – Toto