我有一个类似“11547QSD”的字符串。我想把它分成两部分“11547”和“QSD”。我得到了isnumeric()函数的提示。我正在做一个概述下来。请给我一个最好的分割方法。在
str1 = "11547QSD" # is a valid string (in my context)
str2 = "ABC98765" # is a valid string
str3 = "111ABC111" # is not a valid string
if str1.isvalid():
str1_int = str1.integer_part()
str1_str = str1.string_part()
提前谢谢
可以对命名组使用正则表达式。在
基本上,您首先创建正则表达式(我创建了两个,对于这两种情况:数字优先还是字母优先)。然后检查输入是否匹配。如果是这样的话,则在结果匹配对象上调用
groupdict()
,以获得类似于{'digits':'11547', 'letters':'QSD'}
的字典。那你就用它(我打印了)。在遵循上述建议的完整示例:
缩短版
如果您了解以上内容,可以缩短代码并创建结果dict(匹配字符串结果组),如下所示:
^{pr2}$注意:
我使用了元字符}。第一个基本意思是“数字”,第二个意思是“非数字”。关于它们含义的详细信息是here。在
\d
和{我认为regex应该是最好的解决方案,例如:
import re
re.split(r'(\d+|\(|\))', '11547QSD')
相关问题 更多 >
编程相关推荐