正则表达式分离数字和字母

4 投票
7 回答
1531 浏览
提问于 2025-04-15 18:38

我有一堆字符串:

"10people"
"5cars"
..

我该怎么把它们分开呢?

['10','people']
['5','cars']

这些字符串里面可以有任意数量的数字和文字。

我在考虑写一些正则表达式,不过我相信在Python里有更简单的方法可以做到这一点。

7 个回答

3

在编程中,有时候我们需要处理一些数据,比如从一个地方获取信息,然后在另一个地方使用这些信息。这个过程就像是把水从一个桶倒到另一个桶一样。

有些时候,我们会遇到一些问题,比如数据的格式不对,或者我们需要在处理数据时做一些额外的操作。这就像是你在倒水的时候,发现水管堵了,或者需要加热水才能使用。

为了避免这些问题,程序员通常会写一些代码来检查数据是否正确,或者在处理数据之前先进行一些准备工作。这样可以确保最终得到的结果是我们想要的。

总之,处理数据就像是一个精细的过程,需要我们仔细检查每一步,以确保一切顺利进行。

>>> re.findall("\d+|[a-zA-Z]+","10people")
['10', 'people']

>>> re.findall("\d+|[a-zA-Z]+","10people5cars")
['10', 'people', '5', 'cars']
8

使用这个正则表达式 (\d+)([a-zA-Z]+)

import re
a = ["10people", "5cars"]
[re.match('^(\\d+)([a-zA-Z]+)$', x).groups() for x in a]

结果:

[('10', 'people'), ('5', 'cars')]
8

在编程中,我们常常会遇到一些问题,尤其是当我们在使用某些工具或库的时候。有时候,文档可能写得不够清楚,导致我们不知道该怎么做。这个时候,StackOverflow 就成了一个很好的资源,很多人会在这里提问和回答问题。

比如说,有人可能会问:“我在使用某个库的时候,遇到了错误,应该怎么解决?”其他人就会根据自己的经验,给出一些建议,比如检查代码、更新库的版本,或者查看相关文档。

总之,StackOverflow 是一个互帮互助的地方,大家可以在这里分享自己的问题和解决方案,帮助彼此更好地学习编程。

>>> re.findall('(\d+|[a-zA-Z]+)', '12fgsdfg234jhfq35rjg')
['12', 'fgsdfg', '234', 'jhfq', '35', 'rjg']

撰写回答