0

我查看了几个帖子和其他论坛以找到与我的问题相关的答案,但没有针对我的需要提出具体的答案。作为提醒,我是编程新手,不具备大多数人所具备的基本基础。

我知道 bash、little python 和 RE。

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

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

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

4

2 回答 2

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

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

于 2013-06-20T16:08:11.840 回答
0

图案怎么样"%s(.*?)%s" % (oneTwoThree, dF5)?然后,您可以对该模式进行重新搜索并在结果上使用组功能。

有点意思


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

如果使用 re.findall 代替 re.search,可以省去对匹配进行分组的麻烦。

于 2013-06-20T16:07:56.527 回答