我想拆分字符串和数字。因此,如果连接的字符串是:
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/