python在字符前重新分割字符串

kak*_*eys 12 python regex split

如何在字符前的位置拆分字符串?

  • 在'a'之前拆分一个字符串
  • 输入:"fffagggahhh"
  • 输出:["fff","aggg","ahhh"]

显而易见的方法不起作用:

>>> h=re.compile("(?=a)")

>>> h.split("fffagggahhh")

['fffagggahhh']

>>>
Run Code Online (Sandbox Code Playgroud)

pyf*_*unc 20

好吧,不完全是你想要的解决方案,但我认为这将是一个有用的问题补充.

没有重新解决方案

没有重新:

>>> x = "fffagggahhh"
>>> k = x.split('a')
>>> j = [k[0]] + ['a'+l for l in k[1:]]
>>> j
['fff', 'aggg', 'ahhh']
>>> 
Run Code Online (Sandbox Code Playgroud)

  • 是的,如果你有一个射钉枪,为什么在一个钉子上使用锤子. (2认同)

ken*_*ytm 5

>>> rx = re.compile("(?:a|^)[^a]*")
>>> rx.findall("fffagggahhh")
['fff', 'aggg', 'ahhh']
>>> rx.findall("aaa")
['a', 'a', 'a']
>>> rx.findall("fgh")
['fgh']
>>> rx.findall("")
['']
Run Code Online (Sandbox Code Playgroud)


ada*_*amk 4

>>> r=re.compile("(a?[^a]+)")
>>> r.findall("fffagggahhh")
['fff', 'aggg', 'ahhh']
Run Code Online (Sandbox Code Playgroud)

编辑:

这将无法正确处理a字符串中的 double :

>>> r.findall("fffagggaahhh")
['fff', 'aggg', 'ahhh']
Run Code Online (Sandbox Code Playgroud)

KennyTM 的重新似乎更适合。