给出一个非空的正则表达式和一个字符串,求该字符串是否能匹配该正则表达式。
这个正则表达式可能含有:
基本元素:
空串,输入中不体现;
单个小写字母(例如
a),a匹配小写字母a,这里a表示小写字母a。
运算符:
连接(例如
ab),ab匹配可以表示成一个与a匹配的串与一个与b匹配的串相连接的串,这里a表示一个正则表达式,下同。或(例如
a|b),a|b匹配与a和b中至少一个匹配的串。闭包(例如
a*),a*匹配零个或多个与a匹配的串的连接。正闭包(例如
a+),a+匹配一个或多个与a匹配的串的连接。括号(例如
(a))
其中连接和或是二元运算符,闭包和正闭包是一元运算符。
所有运算符都是左结合的,即同等优先级的运算顺序从左到右。
闭包和正闭包的优先级最高,连接次之,或的优先级最低。