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

判断字符串类型
麻烦解释的: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
大婶们起来了没~
pengpeng1210 1年前 已收到1个回答 举报

语美人 幼苗

共回答了14个问题采纳率:92.9% 举报

(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

1年前 追问

2

pengpeng1210 举报

好详细额 谢谢

举报 语美人

这是正则表达式。在定义、搜索里面广泛运用。许多语言都支持。可以在百度文库或者百度百科里面找到详细的讲解。 正则表达式,是用来描述事物结构组成模式的一种方法。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.031 s. - webmaster@yulucn.com