簡體   English   中英

Python Regex - 在每個字符后分割字符串

[英]Python Regex - Split string after every character

我有一個字符串,遵循1+數字的模式,后跟一個字母, 'a', 'b', 'c' 我想在每個字母后分割字符串。

some_function('12a44b65c')
>>> ['12a', '44b', '65c']

在此輸入圖像描述

到目前為止我已經嘗試過了

re.split('([abc]\d+)', '12a44b65c')
>>> ['12', 'a44', '', 'b65', 'c']

你的正則表達式是向后的 - 它應該是任意數量的數字,后跟abc 另外,我不會使用split ,它返回煩人的空字符串,但是findall

>>> re.findall('(\d+[abc])', '12a44b65c')
['12a', '44b', '65c']

如果你能夠使用更新的正則表達式模塊 ,你甚至可以在零寬度匹配上進行拆分(即使用外觀)。

import regex as re

rx = r'(?V1)(?<=[a-z])(?=\d)'
string = "12a44b65c"
parts = re.split(rx, string)
print parts
# ['12a', '44b', '65c']

這種方法在后面查找az中的一個和一個數字( \\d )。
原始的re.split()不允許零寬度匹配,為了兼容性,您明確需要在模式中使用(?V1)打開新行為。
請參閱regex101.com上演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM