要删除的正则表达式';%i';和PHP中的字符串类似?
我有一个web应用程序需要解析iOS应用程序中的字符串文件。我试图在一个字符串中找到Objective-C样式的百分比转义的所有实例,并在PHP中为它们添加一个span类。比如说,要删除的正则表达式';%i';和PHP中的字符串类似?,php,regex,Php,Regex,我有一个web应用程序需要解析iOS应用程序中的字符串文件。我试图在一个字符串中找到Objective-C样式的百分比转义的所有实例,并在PHP中为它们添加一个span类。比如说, "Hello my name is %@ and I have %ld cats" 应成为: "Hello my name is <span class='b'>%@</span> and I have <span class='b'>%ld</span> cats"
"Hello my name is %@ and I have %ld cats"
应成为:
"Hello my name is <span class='b'>%@</span> and I have <span class='b'>%ld</span> cats"
“你好,我的名字是%@我有%ld只猫”
不幸的是,我的正则表达式技能已经过时了。如何才能正确有效地执行此操作?(一次可能解析1000多个字符串)可能
$string = "Hello my name is %@ and I have %ld cats";
$pattern = "/(%[^\s]+)/";
$replacedStr = preg_replace($pattern, "<span class='b'>$1</span>", $string);
$string=“你好,我的名字是%@我有%ld只猫”;
$pattern=“/([^\s]+)/”;
$replacedStr=preg_replace($pattern,$1,$string);
根据NullUserException,这也将起作用(实际上更短!):
$string=“你好,我的名字是%@我有%ld只猫”;
$pattern=“/%\S+/”;
$replacedStr=preg_replace($pattern,$0,$string);
现在没有时间给你写正则表达式(我也必须像你一样自己去挖掘记忆),但是在这里可以找到一个让你的正则表达式正确的奇妙工具:[^\s]
可以写成\s
;您还可以删除捕获组并使用$0
$string = "Hello my name is %@ and I have %ld cats";
$pattern = "/%\S+/";
$replacedStr = preg_replace($pattern, "<span class='b'>$0</span>", $string);