在python中执行位于外部文件中的正则表达式

时间:2015-03-13 13:18:38

标签: python regex

我需要从外部文件加载一些必须执行的正则表达式...

算法不需要知道它们是什么类型的正则表达式...但最后它必须打印标签

    email_re=["EMAIL","([^@|\s]+@[^@]+\.[^@|\s]+)"];
    phone_re=["PHONE","(\d{3}[-\.\s]??\d{3}[-\.\s]??\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]??\d{4}|\d{3}[-\.\s]??\d{4})"];

    regexs=[email_re,
            phone_re]

    for regex in regexs:
        #print regex
        match = re.search(regex[1], prodotto)
        if match:
            print regex[0]+": "+match.group()

创建定义外部文本文件中所有正则表达式的正则表达式数组的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

使用json作为外部文件,试试这个:

import json

json_data=open('regex.json')
data = json.load(json_data)

for label, regex in data.items():
    print label
    print regex # process your regex here instead print

json文件:

{
 "email" : "([^@|\\s]+@[^@]+\\.[^@|\\s]+)",
 "phone" : "(\\d{3}[-\\.\\s]??\\d{3}[-\\.\\s]??\\d{4}|\\(\\d{3}\\)\\s*\\d{3}[-\\.\\s]??\\d{4}|\\d{3}[-\\.\\s]??\\d{4})"
}