示例1)
简单的例子,如果我想为整数创建一个正则表达式 - 一个非空的数字字符串。
digit =' 0' |' 1' |' 2' |' 3' |' 4' | ' 5' |' 6' |' 7' |' 8' |' 9'
整数=数位+
根据我的说明,将使用'数字+' 。我不明白的是,' 为什么呢?这不是多余的吗?
正则表达式不仅仅是'数字+' ?一个或多个匹配将匹配所有数字。
示例2)
从书中摘录
编程语言C采用了通过使用前缀“0x”来表示使用十六进制(base-16)数字,然后是数字“0,1,2,3,4”的非空序列的惯例,5,6,7,8,9,A,B,C,D,E,F“表示这些数字的值。这允许方便地表示二进制模式,其是4位长的倍数(一个 每个四比特组的十六进制数字),例如, OxA01E代表一个16位模式,即最初开发C的机器的“字”大小。
给出一个正则表达式,表示C表示任意长度的十六进制数字,使用下面定义的hdigit。
hdigit = (’0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’|’A’|’B’|’C’|’D’|’E’|’F’)
我的回答:' Ox' hdigit +
实际答案:' Ox' hdigit hdigit *
已解决 hidigit +与hdigit hdigit *同义*
这种情况下的解释是什么?