PHP字符串问题

PHP字符串问题,php,string,Php,String,我知道这是一个愚蠢的问题,但我想知道下面每个序列的简单含义 \[0-7]{1,3} 与正则表达式匹配的字符序列是八进制表示法中的字符 \x[0-9A-Fa-f]{1,2} 与正则表达式匹配的字符序列是一个十六进制表示法的字符这意味着如果您有一个类似于的字符串“foo bar\041”,\041将被视为字符的八进制表示。类似于十六进制序列 正则表达式定义了字符序列必须遵循的结构,以便解释为八进制或十六进制表示: 八进制:斜杠\,后跟0和7之间的一到三位数字 十六进制:斜杠\,后跟x,后跟一

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

\[0-7]{1,3} 
与正则表达式匹配的字符序列是八进制表示法中的字符

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

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

这意味着如果您有一个类似于
的字符串“foo bar\041”
\041
将被视为字符的八进制表示。类似于十六进制序列

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

  • 八进制:斜杠
    \
    ,后跟
    0
    7
    之间的一到三位数字
  • 十六进制:斜杠
    \
    ,后跟
    x
    ,后跟一个或两个字符,可以是数字或大写或小写字母
查看每个字符的八进制和十六进制等效值。

例如:

echo "\064\062"; // echos 42
十六进制:

echo "\x52\x50";

这两个正则表达式定义了数字的格式。
[0-7]
表示允许所有数字介于0和7之间,后面的
{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可能是个错误…

您知道正则表达式是什么吗?还有,两个正则表达式都不正确。你现在到底想知道什么?这些表达式在做什么?或者这些句子是什么意思?@rudi@Rafe为什么要屈尊俯就?他想知道这些句子的意思,这是一个公平的问题。这些例子直接来自于“我不是正则表达式大师”,但第一个例子显然是错误的,不是吗?不是每一个以0-7开头的数字都是八进制数吗?我没看到什么吗?@Pekka:据我所知,这不应该是regex,只是“一种”。它只需要字符组(
[]
)和量词(
{a,b}
)-符号,仅此而已。您忘记了前面的\或\ x您可能想阅读其他答案和问题下面的注释。啊。。。我没有考虑太多关于。。。那么另一个也应该有一个X?