请教一个正则表达式的基础知识。
程序员文章站
2023-12-24 13:56:57
...
不知道这个问题应该在哪问,就借宝地请教一下。
刚才看到一个例子,有三组字符如下:
z
zo
zoo
为什么zo*可以匹配z呢?zo+就只能匹配zo,zoo
难道zo*等于z{1}o*?
新手刚开始学正则,很多地方还不太明白,还请高手给予指点,谢谢。
嗯,你现在的理解是对的了
0或N个zo 应该这样写 (zo)*
刚才看到一个例子,有三组字符如下:
z
zo
zoo
为什么zo*可以匹配z呢?zo+就只能匹配zo,zoo
难道zo*等于z{1}o*?
新手刚开始学正则,很多地方还不太明白,还请高手给予指点,谢谢。
回复讨论(解决方案)
*表示匹配前面的字符零次或多次,+表示一次或多次
zo*表示z后面有零个或多个o,zo+表示zo后面有零个或多个o
为什么zo*可以匹配z呢?zo+就只能匹配zo,zoo
*表示匹配0次或多次
所以zo* 匹配 z后面0个o到N个o都可以
z
zo
zoo
zoooo...都可以
如果你要匹配至少一次
应该写zo+
谢谢楼上两位。
*和+的意思我明白,我只是不明白他们的影响范围。根据你们的解答,看来*和+只会影响到o而对z没有影响。我之前一直以为zo*是指有0或N个zo,那看来我理解错了,zo*应该是指有1个z,0或N个o,应该是这样吧?
谢谢楼上两位。
*和+的意思我明白,我只是不明白他们的影响范围。根据你们的解答,看来*和+只会影响到o而对z没有影响。我之前一直以为zo*是指有0或N个zo,那看来我理解错了,zo*应该是指有1个z,0或N个o,应该是这样吧?
嗯,你现在的理解是对的了
0或N个zo 应该这样写 (zo)*
为什么zo*可以匹配z呢?
zo* 表示 一个 z 和 0 到 n 个 o 这样的字符组合
正则表达式的匹配单位是字符,而不是单词
谢谢大家,现在彻底清楚了。