1

嗨,我有以下由字母和数字组成的字符串“00G990010020100038”,我想用它们的 ASCII 值替换字母,实际上字符串中只能有一个字母,位置就是它的变化。

我尝试使用 preg_replace 没有成功,也许我做错了什么。

preg_replace("/[a-zA-Z]/", ord('$\1'), $mystring)

我的代码用字母替换字符“$”的 ASCII 值,但我希望替换“G”(在这种情况下)。

4

2 回答 2

2

试试这个:

preg_replace("/[a-zA-Z]/e", "ord('\\0')", $mystring)

/e 修饰符允许您在替换中执行 PHP。

于 2012-09-27T16:52:08.470 回答
2

你可以preg_replace_callback改用。它比e修饰符更有效。

preg_replace_callback(
    "/[a-zA-Z]/",
    create_function('$matches','return ord($matches[0]);'),
    $mystring
);
于 2012-09-27T16:59:36.930 回答