嗨,我有以下由字母和数字组成的字符串“00G990010020100038”,我想用它们的 ASCII 值替换字母,实际上字符串中只能有一个字母,位置就是它的变化。
我尝试使用 preg_replace 没有成功,也许我做错了什么。
preg_replace("/[a-zA-Z]/", ord('$\1'), $mystring)
我的代码用字母替换字符“$”的 ASCII 值,但我希望替换“G”(在这种情况下)。
试试这个:
preg_replace("/[a-zA-Z]/e", "ord('\\0')", $mystring)
/e 修饰符允许您在替换中执行 PHP。
你可以preg_replace_callback
改用。它比e
修饰符更有效。
preg_replace_callback(
"/[a-zA-Z]/",
create_function('$matches','return ord($matches[0]);'),
$mystring
);