regex匹配一个变量,并从python中匹配行的引号中获取单词

2024-10-01 17:32:47 发布

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

假设我有这个变量

myvar = "81"

我想在有这样字符串的行中搜索,得到引号中的单词:

static public Register myReg1 = new Register("D4_STAT_1", 81);
static public Register myReg2 = new Register("D5_STAT_1", 819);

在本例中,如果我想通过在文件中搜索myvar来查找“D4\u STAT\u 1”,我知道如何读取每一行,但我的问题是如何搜索一个变量并准确地获得引号中的单词。你知道吗

谢谢。你知道吗


Tags: 文件字符串registernewstaticpublic单词stat
2条回答

你可以这样做:

import re

myvar = 81

with open("myfile") as _file:
    for line in _file:
        match = re.search(('\((?P<register_name>".+"), %s\)' % re.escape(str(myvar))),
                          line)
        if match:
            print match.group("register_name")
>>> import re
>>> s = '''
... static public Register myReg1 = new Register("D4_STAT_1", 81);
... static public Register myReg2 = new Register("D5_STAT_1", 819);
... '''
>>> myvar = "81"
>>> re.search('static public Register \w+ = new Register\("(\w+)", %s\);' % re.escape(str(myvar)), s).group(1)
'D4_STAT_1'

根据具体情况(输入文件),还可以使用更简单的方法:

>>> re.search('Register\("(\w+)", %s\);' % re.escape(str(myvar)), s).group(1)
'D4_STAT_1'

相关问题 更多 >

    热门问题