在python脚本中的正则表达式

时间:2018-05-23 09:51:48

标签: python regex

我的正则表达是可怕的。我有列表项看起来像这样

device = ['1U1abc']
device = ['18U12def']

我想将项目分开,看起来像这样

device = ['1','U1','abc']
device = ['18','U12','def']

所以我有一个字符串中第一个数字的条目,带有字母和数字的代码,以及包含所有字母的第二个代码。正则表达式是一个很好的方法来获得这个吗?

3 个答案:

答案 0 :(得分:5)

使用:

>>> re.findall(r'(^\d+|U\d+|[a-z]+)', device[0])
['1', 'U1', 'abc']

答案 1 :(得分:0)

使用正则表达式

<强>演示:

import re
device = ['1U1abc', '18U12def']
for i in device:
    m = re.search("(?P<firstValue>\d+)(?P<secondVal>U\d+)(?P<thirdVal>\w+)", i)
    if m:
        print(m.group('firstValue'))
        print(m.group('secondVal'))
        print(m.group('thirdVal'))
        print("-------------")

<强>输出:

1
U1
abc
-------------
18
U12
def
-------------

答案 2 :(得分:-1)

试试这个:

import re

devices = ['1U1abc', '18U12def']
rex = '(\d+)(\w\d+)(\w+)'
r = re.compile(rex)
[r.findall(device) for device in devices]

因此。我猜你会处理一个字符串列表,这可能很方便。使用regex101.com来组成并检查正则表达式。预编译它可以节省大量的解析列表。