作业帮 > 综合 > 作业

判断字符串类型 麻烦解释的:return str.matches("(AH|(AB){n}(AH|A([DE]F+)+G

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/02 04:29:24
判断字符串类型
麻烦解释的:return str.matches("(AH|(AB){n}(AH|A([DE]F+)+GC)C{n}|A([DE]F+)+GC)([DE]F+)+G") 1 :0;
据一组规则识别一个特定的字符串是常见的计算机问题.
定义了如下三种字符串类型:
Slump是一串字符,具有如下性质:
1.以'D'或'E'开始
2.第一个字符后由1个或多个'F'
3.之后跟着一个Slump或'G',至此一个Slump结束.
4.其他的都不是Slump
例如,DFFEFFFG是Slump
Slimp是一串字符,具有如下性质:
1.第一个字符是'A'
2.如果Slimp只有2个字符,则第二个字符是'H'
3.如果大于2个字符,则可能有2种形式
a) 'A'后接一个'B'再接一个Slimp再接一个'C'
b) 'A'后接一个Slump再接一个'C'
4.其他的都不是Slimp
Slurpy是一个Slimp后接一个Slump组成
请编写程序判断一个字符串是否为Slurpy
大婶们起来了没~
(AH|(AB){n}(AH|A([DE]F+)+GC)C{n}|A([DE]F+)+GC)([DE]F+)+G
(----|----------------------------------------|------------------)(-------------
-----------------------------------------------------------------)(--------------
Slimp +Slump =Slurpy
AH:两个字符的Slimp;
([DE]F+)+G:slump,[ ]表示或,[DE]表示D或E开头(slump定义1);+表示一个或几个,F+,一个或者几个F(slump定义2),([DE]F+)+表示一个或几个slump,就是slump定义3;G,slump结束(定义3);因此这个部分就是slump
A([DE]F+)+GC:将上面的slump带进来,就是AslumpC,是Slimp定义3.b)的形式,因此AslumpC就是一个Slimp;
AH|A([DE]F+)+GC:Slimp的两种形式,2字符的AH(定义1,2,2;以及上面所述定义3.b),因此,这也是Slimp;
(AB){n}(AH|A([DE]F+)+GC)C{n}:上式代入得:(AB){n}SlimpC{n},这是定义3.a)的Slimp,也是Slimp;{n}表示可以n次重复,据Slimp的定义3.a),AB后面接另一个Slimp,这个Slimp也可以以AB开头,因此AB可以重复多次.同样Slimp也可以重复多次.
AH|(AB){n}(AH|A([DE]F+)+GC)C{n}:上式代入,就是2个或者几个字符的Slimp,还是Slimp;
上图第二行,表明,前面括号中是slimp的三种定义,整个表示Slimp;后面一个括号是Slump的定义,两者合并,就是第三行表达的意思:Slurpy=SlimpSlump
再问: 好详细额 谢谢
再答: 这是正则表达式。在定义、搜索里面广泛运用。许多语言都支持。可以在百度文库或者百度百科里面找到详细的讲解。 正则表达式,是用来描述事物结构组成模式的一种方法。