用python正则表达式拆分字符串

2024-06-25 05:25:39 发布

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

更新了我的前一个问题Python string split using regex,我试图分析如下行:

123foo  bar456  baz
123foo, bar456, baz
123foo > 13.0  bar456 = 1024  baz
123foo > 13.0, bar456 = 1024, baz

项目格式如下:

String1 [OP String2]

String1和String2都可以包含字母、数字和“.”(如abc123、1.2.3等)
OP可以是:<;,>;,<;=,>;=,=
项目之间的分隔符是可选的,我想要得到的是String1

所以上面所有行的结果就是:

['123foo', 'bar456', 'baz']

如何在python中执行此操作?你知道吗


Tags: 项目ltgtstring格式字母数字baz
1条回答
网友
1楼 · 发布于 2024-06-25 05:25:39

上一个问题的代码也被修改为包含数字:

import re
with open("input") as f:
    for line in f:
        line = line.strip()
        # chop a line into expressions of the form: str [OP str]
        exprs = re.split(r'([\w\d]+\s*(?:[!<>=]=?\s*[\w\d.]*)?\s*,?\s*)', line)
        for expr in exprs:
            # chop each expression into tokens and get the str part
            tokens = re.findall(r'([\w\d]+)\s*(?:[!<>=]=?\s*[\w\d.]*)?,?', expr)
            if tokens: print tokens

相关问题 更多 >