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