首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在正则表达式中使用变量而不是模式

在正则表达式中使用变量而不是模式
EN

Stack Overflow用户
提问于 2015-05-03 09:58:02
回答 2查看 45关注 0票数 1

我对python还是个新手。我已经搜索了几个论坛,都没有找到答案。

我定义了一个列表,并希望在列表中搜索一行以查找匹配项。就像这样

代码语言:javascript
代码运行次数:0
运行
复制
import re
list = ['a', 'b', 'c']

for xa in range(0, len(list)):
m = re.search(r, list[xa], line):
if m:
    print(m)

有没有办法将变量传递给正则表达式?

EN

回答 2

Stack Overflow用户

发布于 2015-05-03 10:00:49

是的,你可以这样做,

代码语言:javascript
代码运行次数:0
运行
复制
for xa in range(0, len(lst)):
    m = re.search(lst[xa], line)
    if m:
        print(m.group())

示例:

代码语言:javascript
代码运行次数:0
运行
复制
>>> 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
票数 1
EN

Stack Overflow用户

发布于 2015-05-03 10:34:33

您可以将变量构建到regex参数中,例如:

代码语言:javascript
代码运行次数:0
运行
复制
import re
line = '1y2c3a'
lst = ['a', 'b', 'c']
for x in lst:
    m = re.search('\d'+x, line)
    if m:
        print m.group()

输出:

代码语言:javascript
代码运行次数:0
运行
复制
3a
2c
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30009465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档