Python 正则表达式按数字和大写字母拆分

我不能用我拥有的正则表达式得到我想要的东西,例如一个字符串

2000H2HfH

我需要得到['2000','H','2','Hf','H']

所以,我需要按数字和大写字母或大写字符串拆分

我使用它([A-Z][a-z]?)(\d+)?并丢失了凝视数字,这是可以理解的原因,但我无法取回它以使结果可读?


慕哥9229398
浏览 123回答 2
2回答

达令说

你可以使用re.findall(r'\d+|[A-Z][a-z]*', text)细节:\d+- 1+ 位数|- 或者[A-Z][a-z]*- 一个大写字母,然后是零个或多个小写字母。import retext = "2000H2HfH"print( re.findall(r'\d+|[A-Z][a-z]*', text) )# => ['2000', 'H', '2', 'Hf', 'H']

四季花海

你有两个一个接一个的捕获组,所以你一个接一个地捕获它们。为了实现你的目标,你应该像这样修改你的捕获([A-Z][a-z]?|\d+)?这里的 | 符号表示您捕获大写字母后跟小写字母或数字。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python