将正则表达式字符串传递到搜索

2024-10-01 05:07:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在尝试将变量替换为搜索.
我使用以下代码从文件中收集存储的正则表达式并将其保存到变量“regex”中。在本例中,存储的regex用于从日志消息中查找带有端口号的ip地址。在

for line in workingconf:
    regexsearch = re.search(r'regex>>>(.+)', line)
    if regexsearch:
        regex = regexsearch.group(1)
        print regex

#I use re.search to go through "data" to find a match.

data = '[LOADBALANCER] /Common/10.10.10.10:10'
alertforsrch = re.search(r'%s' % regex, data)
if alertforsrch:
    print "MATCH"
    print alertforsrch.group(1)
else:
    print "no match"

当这个程序运行时,我得到以下信息。在

^{pr2}$

当我改变搜索对下面的工作有用。正则表达式将从文件中获取,并且可能不是每次都相同。这就是为什么我要使用变量。在

for line in workingconf:
    regexsearch = re.search(r'regex>>>(.+)', line)
    if regexsearch:
        regex = regexsearch.group(1)
        print regex


alertforsrch = re.search(r'/Common/([\d]{1,}\.[\d]{1,}\.[\d]{1,}\.[\d]{1,}:[\d]{1,})', data)
if alertforsrch:
    print "MATCH"
    print alertforsrch.group(1)
else:
    print "no match"

####### Results ########
$./messageformater.py
/Common/([\d]{1,}\.[\d]{1,}\.[\d]{1,}\.[\d]{1,}:[\d]{1,})
MATCH
10.10.10.10:10

Tags: inreforsearchdataifmatchline
1条回答
网友
1楼 · 发布于 2024-10-01 05:07:22

对我来说很好。。。在

为什么还要用字符串格式化程序呢?搜索(regex,data)应该可以正常工作。在

从文件读入的regex末尾可能有一个换行符-try搜索(正则表达式条(),数据)

相关问题 更多 >