正则表达式 - 用小写和一些细节替换大写

时间:2015-05-18 11:10:54

标签: php regex replace notepad++

我会问是否有人可以告诉我如何查找和替换所有大写字母(*注意:单词中的非首字母)并用小写字母和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中制作它会很棒。

提前谢谢!

  • 我知道没有任何尝试发布主题是不能容忍的,所以请原谅,但不知道如何发生这种情况。

1 个答案:

答案 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>ствую