一种简单的正则表达式:只由 x ( ) | 组成的正则表达式。 小明想求出这个正则表达式能接受的最长字符串的长度。 例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是6 解释: 正则表达式,又称规则表达式,通常被用来检索、替换符合某个模式(规则)的文本。 比如题目中由 x ( ) | 组成的正则表达式,括号“()”的优先级最高,或操作“|”次之。括号里面 是一个整体,或的两边保留最长的一个。 ((xx|xxx)x|(x|xx))xx是怎么执行的,为什么是6呢? 先执行括号,再执行或, 步骤是: (1)先看第一个括号,发现里面还有嵌套括号,找到最内部的括号,括号内是一个或操 作。((xx|xxx)x|(x|xx))xx,得:(xxxx|(x|xx))xx (2)继续执行最内部括号。(xxxx|(x|xx))xx,得:(xxxx|xx)xx (3)继续执行最后括号。(xxxx|xx)xx,得:xxxxxx,结束,得长度为6的字符串。 正则表达式教程:https://www.runoob.com/regexp/regexp-tutorial.html 它自带测试工具。
输入
输出