- Python 正则分割字符串保留分隔符
- 分隔符是一个的时候可以,两个以上有什么好办法
s='123AA456B789AAA'
# 想分割成:123AA 456B 789AAA
s='123AA456B789AAA'
# 想分割成:123AA 456B 789AAA
1
xpresslink Nov 20, 2019 非要用 split 么?
>>> s='123AA456B789AAA' >>> import re >>> re.findall('\d+[AB]+',s) ['123AA', '456B', '789AAA'] |
2
sunhk25 OP @xpresslink 怎么都可以,不过分隔符 AA B AAA 都是不固定的
|
3
ddzzhen Nov 20, 2019 via Android 分割的依据都没说,你指望得到解决方案?
|
5
ksedz Nov 20, 2019
split 的话大概是这样,如果要连起来,像#1 说的 findall 比较好
```python In [1]: import re In [2]: s = '123AA456B789AAA' In [3]: re.split(r"[AB]", s) Out[3]: ['123', '', '456', '789', '', '', ''] In [4]: re.split(r"([AB])", s) Out[4]: ['123', 'A', '', 'A', '456', 'B', '789', 'A', '', 'A', '', 'A', ''] In [5]: re.split(r"([AB]+)", s) Out[5]: ['123', 'AA', '456', 'B', '789', 'AAA', ''] ``` |
6
cherbim Nov 20, 2019
要是分隔符只为字母,建议正则
|
7
necomancer Nov 21, 2019
一楼答案没毛病啊
In [1]: re.findall(r"\d+[A-Z]+", s) Out[1]: ['123AA', '456B', '789AAA'] |