答: 我可以使用动态规划来实现这个正则表达式匹配。首先,我们需要定义一个二维数组dp[i][j],其中i表示字符串s的起始位置,j表示字符规律p的起始位置。dp[i][j]表示从s[i]开始到s[s.length-1],从p[j]开始到p[p.length-1]是否能够匹配。我们可以从dp[s.length-1][p.length-1]开始计算,如果s[i]和p[j]相等,或者p[j]为'.',那么dp[i][j] = dp[i+1][j+1],如果p[j]为'*',那么dp[i][j] = dp[i][j+2] || dp[i+1][j],最后返回dp[0][0]即可。