熟悉正则表达式,但不了解这个基本概念

时间:2018-05-23 12:27:53

标签: regex

示例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 *同义*

这种情况下的解释是什么?

0 个答案:

没有答案