我的问题很简单,只使用正则表达式查找和替换,是否可以保留原始单词的大小写。
所以,如果我有字符串:“非常漂亮是如此美丽” 我怎么能把它变成:“可爱可爱如此可爱”
到目前为止,我所有人都找到了/(P|p)retty/g
并替换为$1ovely
,但我不知道如何用L替换caplital P,用l替换小写p。
我对使用任何特定语言完成此操作不感兴趣,我想知道是否可以使用纯正则表达式。
答案 0 :(得分:1)
根据单独通过正则表达式捕获的字母类型,无法将捕获的大写或小写字母替换为字母。但它可以通过语言内置函数+正则表达式来实现。
在php中,我会喜欢。
$str = "Pretty pretty is so pretty";
echo preg_replace_callback('~([pP])retty~', function ($m)
{
if($m[1] == "P") {
return "Lovely"; }
else { return "lovely"; }
}, $str);
输出:
Lovely lovely is so lovely