【问题标题】:python: splitting strings where numbers and letters meet (1234abcd-->1234, abcd)python:拆分数字和字母相遇的字符串(1234abcd--> 1234,abcd)
【发布时间】:2015-06-01 18:10:05
【问题描述】:

我有一个由数字和字母组成的字符串:string = 'this1234is5678it',我希望string.split() 输出给我一个类似['this', '1234', 'is', '5678', 'it'] 的列表,在数字和字母相遇的地方拆分。有没有简单的方法可以做到这一点?

【问题讨论】:

    标签: python string list split


    【解决方案1】:

    您可以为此使用正则表达式。

    import re
    s = 'this1234is5678it'
    re.split('(\d+)',s)
    

    运行示例http://ideone.com/JsSScE

    输出['this', '1234', 'is', '5678', 'it']

    更新

    Steve Rumbalski 在评论中提到了正则表达式中括号的重要性。他引用了文档:

    如果pattern中使用了捕获括号,那么所有的文本 模式中的组也作为结果的一部分返回 列表。”如果没有括号,结果将是 ['this', 'is', '它']。

    【讨论】:

    • 值得一提的是,正则表达式中的括号在这里很重要。来自docs:“如果在模式中使用了捕获括号,那么模式中所有组的文本也会作为结果列表的一部分返回。”没有括号,结果将是['this', 'is', 'it']
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    相关资源
    最近更新 更多