python - 在 Python 中分隔字符串和整数

标签 python

我想拆分字符串和数字。因此,如果连接的字符串是:

Hans went to house number 10 92384 29349

它应该将文本拆分为:

Hans went to house number | 10 | 92384 | 29349

我对如何解决这个问题感到困惑,因为拆分不会起作用,因为它也会拆分 Hans |去了 |到 |房子 |数..

最佳答案

使用正则表达式非常简单:

>>> import re
>>> s = "Hans went to house number 10 92384 29349"
>>> re.split(r'\s+(?=\d+\b)', s)
['Hans went to house number', '10', '92384', '29349']

也就是说你的问题很困惑,如果你想将 | 字符添加到输出中,只需再次加入输出即可:

>>> ' | '.join(_)
'Hans went to house number | 10 | 92384 | 29349'

如果你的目标是实现一个函数来实现这个目的,你可以这样写:

def split_numbers(string, join=None):
   from re import split
   split = re.split(r'\s+(?=\d+\b)', string)
   return join.join(split) if join else split

请注意,我在正则表达式中添加了单词边界 \b 以避免匹配以数字开头的单词,例如句子 Hans went to house 中的 2cups号码 10 92384 29349 喝了 2 杯咖啡

关于python - 在 Python 中分隔字符串和整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43323370/

相关文章:

python - celery 任务未在 Django 数据库中注册

python - Keras:训练和 val 集上的 model.evaluate() 与上次训练时期后的 acc 和 val_acc 不同

python - Pandas 数据框中两列的条件测试和比较

Python27 - 将元组时间转换为日期时间对象

python - SQLSoup 多重连接

python - 将具有 UTC 偏移量的字符串转换为日期时间对象

带有正则表达式过滤意外字符的 Python str.strip()

python - 将数字中的数字配对

python - Pyads 在通知上读取值 : when TwinCat cycle occured

python - 网络驱动程序异常 :can't load profile error in selenium python script