我对python还是个新手。我已经搜索了几个论坛,都没有找到答案。
我定义了一个列表,并希望在列表中搜索一行以查找匹配项。就像这样
import re
list = ['a', 'b', 'c']
for xa in range(0, len(list)):
m = re.search(r, list[xa], line):
if m:
print(m)
有没有办法将变量传递给正则表达式?
发布于 2015-05-03 02:00:49
是的,你可以这样做,
for xa in range(0, len(lst)):
m = re.search(lst[xa], line)
if m:
print(m.group())
示例:
>>> line = 'foo bar'
>>> import re
>>> lst = ['a', 'b', 'c']
>>> for xa in range(0, len(lst)):
m = re.search(lst[xa], line)
if m:
print(m.group())
a
b
发布于 2015-05-03 02:34:33
您可以将变量构建到regex参数中,例如:
import re
line = '1y2c3a'
lst = ['a', 'b', 'c']
for x in lst:
m = re.search('\d'+x, line)
if m:
print m.group()
输出:
3a
2c
https://stackoverflow.com/questions/30009465
复制