PHP字符串问题


PHP strings question

我知道这是一个愚蠢的问题,但我想知道下面每个序列的简单含义。

'[0-7]{1,3} 

与正则表达式匹配的字符序列是八进制中的一个字符

'x[0-9A-Fa-f]{1,2}

与正则表达式匹配的字符序列是十六进制表示法

中的字符

这意味着,如果您有像"foo bar '041"这样的字符串,则'041将被视为字符的八进制表示。类似于十六进制序列。

正则表达式定义了字符序列必须遵循的结构,以便被解释为八进制或十六进制表示:

  • 对于八进制:斜线',后跟07之间的一到三位数字
  • 对于十六进制:斜线',后面跟着x,后面跟着一个或两个字符,可以是数字,也可以是大写或小写字母

查看ASCII表,查看每个字符的八进制和十六进制等效值

例如:

echo "'064'062"; // echos 42

十六进制:

echo "'x52'x50";

这两个正则表达式定义了数字的格式。[0-7]意味着允许0到7之间的所有数字,之后的{1,3}意味着可能存在这些数字中的1到3个。

类似地,在第二个正则表达式中,[0-9A-Fa-f]表示0和9之间的所有数字,A和F之间的所有大写字母,以及A和F之间的所有小写字母。{1,2}表示这些数字/字母中必须有一个或两个。

正则表达式有问题,它无法正确测试字符串,因为开头没有^,结尾没有$,但别介意。

好的,第一个是

match range 0-7 one 1 to 3 charcters

第二个是

match range 0-9 AND A-F (capital) AND a-f(small) 1 to 2 charcters 

第二个中的x可能是个错误。。。