删除'%i'类似于PHP中的string


Regex to remove '%i' and similar from string in PHP?

我有一个web应用程序,需要从iOS应用程序解析字符串文件。我试图在一个字符串中找到objective - c风格的百分比转义的所有实例,并向它们添加一个span类,在PHP中。例如,

"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"

不幸的是,我的正则表达式技能已经生锈了。我怎样才能正确有效地做到这一点?(可能一次解析1000多个字符串)

也许…

$string = "Hello my name is %@ and I have %ld cats";
$pattern = "/(%[^'s]+)/";
$replacedStr = preg_replace($pattern, "<span class='b'>$1</span>", $string);

Per NullUserException,这也可以工作(并且实际上更短!):

$string = "Hello my name is %@ and I have %ld cats";
$pattern = "/%'S+/";
$replacedStr = preg_replace($pattern, "<span class='b'>$0</span>", $string);