python re - 在字符之前分割字符串

12 投票
7 回答
33939 浏览
提问于 2025-04-16 06:32

如何在字符前面把一个字符串分开?

  • 在字符 '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']
>>> 

撰写回答