正则表达式匹配

August 8, 2018 · View on GitHub

给定一个输入字符串s和一个模式p,实现正则表达式匹配的支持.*.

  • .匹配任何单个字符.
  • *匹配前面元素的零个或多个.

匹配应涵盖整个输入字符串 (不是部分) .

注意

  • s可能是空的,只包含小写字母a-z.
  • p可能是空的,只包含小写字母a-z.要么*.

例子

示例#1

输入:

s = 'aa'
p = 'a'

输出: false

说明: aaa整个字符串不匹配.

例#2

输入:

s = 'aa'
p = 'a*'

输出: true

说明: *表示前面元素中的零个或多个a. 因此,通过重复a一旦它变成了aa.

例#3

输入:

s = 'ab'
p = '.*'

输出: true

说明: .*意思是"零或更多(*) 的 任何角色 (.)".

例#4

输入:

s = 'aab'
p = 'c*a*b'

输出: true

说明: c可以重复0次,a可以重复1次. 因此它匹配aab.

参考