首页 > 解决方案 > 正则表达式动态查找模式 - Python

问题描述

我有一个如下所示的 Python 列表,我想构建一个正则表达式来验证我的输入字符串是否与列表格式匹配。

list = ['The Computer name is *** and its RAM is ***','The Laptop is from *** Brand','The Laptop has windows ***/']

所以 Python 列表有一个字符串集合,以及以下特殊字符集: * = 匹配一个单词 * / = 匹配一个或多个单词

列表中的其余单词应该是完全匹配的。

所以基本上我需要遍历列表,并将其与输入字符串进行比较,以查看我的输入字符串是否与列表中的格式匹配。

例如:我需要将字符串 a 与列表项 0 进行比较,字符串将是“计算机名称为 Dell,其 RAM 为 2gb”,此字符串将通过验证。而以下字符串将无法通过验证“计算机名称为 Dell,其 RAM 为 2 gb”,因为“2 gb”是 2 个单词,而在我们的验证列表中,我们期待一个单词。

标签: pythonregexpython-3.x

解决方案


所以你的清单应该是:

list = ['The Computer name is [a-zA-Z]+? and its RAM is \d+[gbGB]+', 'The Laptop is from [a-zA-Z]+? Brand', 'The Laptop has windows [a-zA-Z ]+?']
text = input('type someting: ')
for item in list:
    if re.match(f'{item}', text):
        #do something

推荐阅读