我有一个python脚本,使用这样的模式获取输入:
1 **然后在那之后接受多个输入,如100,110,011等.
我需要测试以确定插补数据是否与模式匹配,*可以代表1或0.这样做的最佳方法是什么?我对Python很新,所以解释会有所帮助.
更新:添加了输入和输出示例
正确输入和输出的示例:
输入:
** 1(图案)
001,101,000
输出:
001,101
解决方法:
我建议使用输入字符串和replace来生成一个简单的正则表达式:
>>> '1**0*'.replace('*', '[01]')
'1[01][01]0[01]'
现在可以以任何你想要的方式使用它:
>>> import re
>>> pattern = '1**0*'.replace('*', '[01]')
>>> bool(re.match(pattern, '00000'))
False
>>> bool(re.match(pattern, '10000'))
True
如果您不熟悉正则表达式,则可能需要阅读tutorial或2.但基本思想是允许括号中的任何一个字符.所以[01]匹配1或0,正如您在问题中所要求的那样.
标签:python,wildcard
来源: https://codeday.me/bug/20190626/1292121.html