我需要从外部文件加载一些必须执行的正则表达式...
算法不需要知道它们是什么类型的正则表达式...但最后它必须打印标签
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()
创建定义外部文本文件中所有正则表达式的正则表达式数组的最佳方法是什么?
答案 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})"
}