python在ch之前重新拆分字符串

2024-05-17 19:43:42 发布

您现在位置:Python中文网/ 问答频道 /正文

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

  • 在“a”之前拆分字符串
  • 输入:“fffagggahhh”
  • 输出:[“fff”,“aggg”,“ahhh”]

显而易见的方法行不通:

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

>>> h.split("fffagggahhh")

['fffagggahhh']

>>>

Tags: 方法字符串refff字符splitcompileahhh
3条回答

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

Solution without re

无回复:

>>> x = "fffagggahhh"
>>> k = x.split('a')
>>> j = [k[0]] + ['a'+l for l in k[1:]]
>>> j
['fff', 'aggg', 'ahhh']
>>> 
>>> r=re.compile("(a?[^a]+)")
>>> r.findall("fffagggahhh")
['fff', 'aggg', 'ahhh']

编辑:

这无法正确处理字符串中的双as:

>>> r.findall("fffagggaahhh")
['fff', 'aggg', 'ahhh']

肯尼特姆似乎更合适。

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

相关问题 更多 >