使用正则表达式拆分字符串

Splitting up a string using regex

我正在编写一个程序来解析摩尔斯电码。输入是字符串格式。这是一个例子:

Input = '/.- .-.. .---- ..-. -.- - ..--- -.-. .... .....'

Desired Output = ['/', '.-', '.-..', '.----', '..-.', '-.-', '-', '..---', '-.-.', '....', '.....']

文中的/表示一个space。我想将正斜杠拆分为它自己的元素而不是摆脱它。 spaces 但是我确实想摆脱。做一个像 re.split(' |/') 这样的表达式可以去掉正斜杠。我应该怎么做呢?提前致谢。

语言上不复杂的方法,使用 itertools.groupby 和区分 '/'' ' 和其余部分的自定义键函数:

from itertools import groupby

s = '/.- .-.. .---- ..-. -.- - ..--- -.-. .... .....'
key = lambda c: c if c in ' /' else 'x'
[''.join(g) for k, g in groupby(s, key=key) if k != ' ']
# ['/', '.-', '.-..', '.----', '..-.', '-.-', '-', '..---', '-.-.', '....', '.....']