在Python中使用正则表达式中的变量

时间:2013-06-20 16:03:40

标签: python regex variables

我查看了几个帖子和其他论坛,以找到与我的问题相关的答案,但没有任何具体到我需要的东西。作为一个抬头,我是编程新手,并没有最基本的基础。

我知道bash,小蟒蛇,和RE一样体面。

我正在尝试创建一个python脚本,使用RE来解析数据并给我一个我需要/想要的输出。

我的输出将包含4个值,所有值都来自一行。正在读入的行被抛出,没有定义的分隔符。 (因此我的计划的原因)

为了找到4个值中的一个,我不得不说找123-并在此之后给我所有内容但是停在这里df5123-不是常量,而是由正常表达式定义,df5也是如此。我将两个RE分配给一个变量。如何使用这些变量在两者之间找到我想要的...如果这有意义,请告诉我。

2 个答案:

答案 0 :(得分:2)

import re
start = '123-'
stop = 'df5'
regex = re.compile('{0}(.*?){1}'.format(re.escape(start), re.escape(stop)))

请注意,re.escape()调用对于这些示例字符串不是必需的,但是如果您的分隔符可以包含在正则表达式中具有特殊含义的字符(.*+?等。)。

答案 1 :(得分:0)

模式"%s(.*?)%s" % (oneTwoThree, dF5)怎么样?然后,您可以对该模式进行重新搜索,并对结果使用groups函数。

的内容

pattern = "%s(.*?)%s" % (oneTwoThree, dF5)
matches = re.search(pattern, text)
if matches:
    print matches.groups()

re.findall,如果使用而不是re.search,可以省去分组匹配的麻烦。