加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

简单功能的正则表达式引擎实现

发布时间:2020-12-14 00:57:47 所属栏目:百科 来源:网络整理
导读:参考文章 功能非常简单,只是检查 text 的前缀是否与 reg_exp 匹配,并不去检查 text 中间是否有与 reg_exp 匹配的子串。 纯递归实现 import sys def match_star (c,reg_exp,text) : while True : if match_here(reg_exp,text): return True if len(text) 0
  1. 参考文章

  2. 功能非常简单,只是检查 text 的前缀是否与 reg_exp 匹配,并不去检查 text 中间是否有与 reg_exp 匹配的子串。

  3. 纯递归实现

import sys

def match_star(c,reg_exp,text):

    while True:
        if match_here(reg_exp,text):
            return True

        if len(text) > 0 and (c == text[0] or c == '.'):
            text = text[1:]
        else:
            break

    return False


def match_here(reg_exp,text):

    if len(reg_exp) == 0:
        return True

    if len(reg_exp) > 1 and reg_exp[1] == '*':
        return match_star(reg_exp[0],reg_exp[2:],text)

    if reg_exp[0] == '$':
        return len(text) == 0

    if reg_exp[0] == '.' and len(text) > 0:
        return match_here(reg_exp[1:],text[1:])

    if reg_exp[0] == text[0] and len(text) > 0:
        return match_here(reg_exp[1:],text[1:])

    return False


if __name__ == '__main__':
    reg_exp = sys.argv[1]
    text = sys.argv[2]

    print(match_here(reg_exp,text))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读