如何使用python中的正则表达式从字符串中检索子字符串

2024-07-08 13:00:56 发布

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

我有表格上的数据

CS989_-RED814298959
CS663_RED812657324
RED819238322_CS537
......

此数据在csv文件中。我要检索所有以红色开头的子字符串。 请建议我使用python中的正则表达式来实现这一点

我尝试了以下代码:

^{2}$

一点也不回


Tags: 文件csv数据字符串代码建议表格红色
3条回答

那些刀伤在里面干什么?试试这个:

substring=re.match("[a-zA-Z]*([0-9]*)", string)

Help on function match in module re:

match(pattern, string, flags=0) Try to apply the pattern at the start of the string, returning a match object, or None if no match was found.

您想要re.search或{}。同样,您的regexp是不正确的-如果您想要的只是“RED”后跟任意数量的数字,它的拼写是r"RED[0-9]+"

>>> strings
['CS989_-RED814298959', 'CS663_RED812657324', 'RED819238322_CS537']
>>> re.match(r"(RED[0-9]+)", strings[0])
>>> re.findall(r"(RED[0-9]+)", strings[0])
['RED814298959']
>>> re.findall(r"(RED[0-9]+)", strings[1])
['RED812657324']
>>> re.findall(r"(RED[0-9]+)", strings[2])
['RED819238322']
>>> re.search(r"(RED[0-9]+)", strings[0])
<_sre.SRE_Match object at 0x1772e40>

如果你不需要正则表达式,就不要使用正则表达式。在

with open('myfile') as f:
    print([l for l in f if l.startswith('RED')])

根据需要更改,即使用csv.reader

^{pr2}$

相关问题 更多 >

    热门问题