• 10. Regular Expression Matching(正则表达式)


    Given an input string (s) and a pattern (p), implement regular expression matching with support for '.' and '*'.

    '.' Matches any single character.
    '*' Matches zero or more of the preceding element.

    The matching should cover the entire input string (not partial).

    Note:

    s could be empty and contains only lowercase letters a-z.
    p could be empty and contains only lowercase letters a-z, and characters like . or *.
    

    Example 1:

    Input:
    s = "aa"
    p = "a"
    Output: false
    Explanation: "a" does not match the entire string "aa".

    Example 2:

    Input:
    s = "aa"
    p = "a"
    Output: true
    Explanation: '
    ' means zero or more of the precedeng element, 'a'. Therefore, by repeating 'a' once, it becomes "aa".

    Example 3:

    Input:
    s = "ab"
    p = "."
    Output: true
    Explanation: ".
    " means "zero or more (*) of any character (.)".

    Example 4:

    Input:
    s = "aab"
    p = "cab"
    Output: true
    Explanation: c can be repeated 0 times, a can be repeated 1 time. Therefore it matches "aab".

    Example 5:

    Input:
    s = "mississippi"
    p = "misisp*."
    Output: false

    Solution1:

    import re
    class Solution:
        def isMatch(self, s, p):
            """
            :type s: str
            :type p: str
            :rtype: bool
            """
            return re.match(p + '$',s)!=None
    

    Solution2:

    import re
    class Solution:
        def isMatch(self, s, p):
            """
            :type s: str
            :type p: str
            :rtype: bool
            """
            return re.search('^' + p + '$',s)!=None
    

    '^'表示匹配字符串开头,'$'表示匹配字符串结尾。
    re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

  • 相关阅读:
    软件测试相关面试
    GET和POST两种基本请求方法的区别
    Fiddler的安装与使用
    idea与eclipse项目相互导入的过程
    Selenium 学习笔记
    面试相关的案例
    idea编译启动报错
    window安装redis无法启动报错
    【001】接口测试-常用工具介绍和使用
    pyinstaller 打包exe相关
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9745342.html
Copyright © 2020-2023  润新知