如何在Python中进行strtok()类型解析?

2024-09-29 19:04:57 发布

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

How do I do what strtok() does in C, in Python?的标题表明它应该回答我的问题,但是我要寻找的strtok()行为是破坏分隔符字符串中任何一个字符的。也就是说,考虑到:

const char* delim = ", ";
str1 = "123,456";
str2 = "234 567";
str3 = "345, 678";

strtok()查找数字的子字符串,而不管delim中存在多少个字符。Python的split期望整个定界字符串都在那里,所以我不能:

^{pr2}$

因为它找不到delim作为子字符串,并返回单个元素的列表。在


Tags: 字符串in标题字符dowhathow分隔符
2条回答

使用replace()将所有分隔符规范化为同一个字符,并在该字符上使用split()-是处理简单情况的一种方法。对于您的示例,replace(',',' ').split()应该可以工作(将逗号转换为空格,然后使用特殊的无参数形式split对空格进行拆分)。在

在Python中,当splitreplace变得过于复杂时,通常会转向re模块;请参阅Sam Mussmann的更一般的答案。在

如果您知道标记将是数字,那么您应该能够使用Python的^{}模块中的^{}函数:

import re
re.split("\D+", "123,456")

一般来说,您可以匹配任何分隔符字符:

^{pr2}$

或者:

re.split("[" + delim + "]", "123,456")

相关问题 更多 >

    热门问题