2

我正在尝试为 ASCII 字符的十六进制表示的原始形式找到一种模式。示例输入如下所示(包括撇号):

'\x61\x62\x63\x87\x72\x52'

或者

'\x61\x62\x63\x64\x61\x42\x93\x3a'

问题是,\x61\x62\x63总是一样的。我尝试了许多不同的模式,例如:

'/\'\\x61\\x62\\x63(.+)\'/i'

'/\'\x61\x62\x63(.+)\'/i'

以及各种替代品,(.+)但我无法使其正常工作。

如果有人可以帮助我,我将不胜感激。

PS。请注意,输入包含 ASCII 字符的十六进制表示

4

1 回答 1

1

\在 PHP 字符串中包含一个您需要使用的字符串,以及在您需要使用的正则表达式\\中包含一个。结合这些要求和 PHP 正则表达式中的单个反斜杠将看起来像. 尝试以下操作:\\\\\\\

$pattern = "/'\\\\x61\\\\x62\\\\x63(.+)'/i";

例如:

preg_match_all($pattern, "'\\x61\\x62\\x63\\x64\\x61\\x42\\x93\\x3a'", $matches);
print_r($matches);

输出:

Array
(
    [0] => Array
        (
            [0] => '\x61\x62\x63\x64\x61\x42\x93\x3a'
        )

    [1] => Array
        (
            [0] => \x64\x61\x42\x93\x3a
        )

)

ideone:http: //ideone.com/RIDa64

于 2013-04-12T20:16:59.273 回答