Compare strings in python like the sql “like” (with “%” and “_”)
我在python中有一个带有一些字符串的列表,我需要知道列表中的witch项类似于"a1_"。这个"u"表示可以是任何字符。有快速的方法吗?
如果我使用的是SQL,我只需键入"where x like"a1_
谢谢您!
在python中,您将使用正则表达式:
1 2 3 4 | import re pattern = re.compile(r'^A1.8301$') matches = [x for x in yourlist if pattern.match(x)] |
这将生成一个符合您需求的元素列表。
- 为了防止子串匹配,需要使用
^ 和$ 锚;例如,BA1k8301-42 不应匹配。re.match() 调用只在测试字符串的开头匹配,但是使用^ 会使这一点更加明确,并很好地反映了$ 的字符串结尾锚定。 - 类SQL中的
_ 转换为. ,表示匹配一个字符。
正则表达式可能是解决问题的方法。iIRC,
1 2 | matcher = re.compile('^A1.8301$') list_of_string = [s for s in stringlist if matcher.match(s)] |