求助正则一个问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
ps3wifi
帖子: 94
注册时间: 2010-01-08 13:09

求助正则一个问题

#1

帖子 ps3wifi » 2020-06-11 14:55

abbbd abbcd acbcd acccd abbbbc abcbcd accbd
/a[bc]*d,想请问一下大家[bc]代表是里面任意一个字母,不是b就是c,星号是代表0个或者多个,我理解应该是abbbbd accccd ad,难道[]后面加了星号就变成多个bc????
头像
astolia
论坛版主
帖子: 6456
注册时间: 2008-09-18 13:11

Re: 求助正则一个问题

#2

帖子 astolia » 2020-06-11 17:26

a[bc]*d的意思是ad|a[bc]d|a[bc][bc]d|a[bc][bc][bc]d|...,ad之间的每一个字符都可以是b或c。
a[bc]*d等同于a(b|c)*d,而你的理解是a(b*|c*)d
ps3wifi
帖子: 94
注册时间: 2010-01-08 13:09

Re: 求助正则一个问题

#3

帖子 ps3wifi » 2020-06-12 8:40

astolia 写了: 2020-06-11 17:26 a[bc]*d的意思是ad|a[bc]d|a[bc][bc]d|a[bc][bc][bc]d|...,ad之间的每一个字符都可以是b或c。
a[bc]*d等同于a(b|c)*d,而你的理解是a(b*|c*)d
谢谢版主,还是版主好,又帮我解疑了
回复