python re - 在字符之前分割字符串
如何在字符前面把一个字符串分开?
- 在字符 'a' 前面分割字符串
- 输入: "fffagggahhh"
- 输出: ["fff", "aggg", "ahhh"]
显而易见的方法不奏效:
>>> h=re.compile("(?=a)")
>>> h.split("fffagggahhh")
['fffagggahhh']
>>>
7 个回答
4
>>> r=re.compile("(a?[^a]+)")
>>> r.findall("fffagggahhh")
['fff', 'aggg', 'ahhh']
编辑:
这个方法对字符串中的两个 a
不会处理得很好:
>>> r.findall("fffagggaahhh")
['fff', 'aggg', 'ahhh']
KennyTM 的正则表达式似乎更合适。
5
>>> rx = re.compile("(?:a|^)[^a]*")
>>> rx.findall("fffagggahhh")
['fff', 'aggg', 'ahhh']
>>> rx.findall("aaa")
['a', 'a', 'a']
>>> rx.findall("fgh")
['fgh']
>>> rx.findall("")
['']
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
21
好的,这个可能不是你想要的解决方案,但我觉得这对解决这个问题会有帮助。
没有使用 re 的解决方案
不使用 re 的方法:
>>> x = "fffagggahhh"
>>> k = x.split('a')
>>> j = [k[0]] + ['a'+l for l in k[1:]]
>>> j
['fff', 'aggg', 'ahhh']
>>>