使用正则表达式拆分字符串
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 != ' ']
# ['/', '.-', '.-..', '.----', '..-.', '-.-', '-', '..---', '-.-.', '....', '.....']
我正在编写一个程序来解析摩尔斯电码。输入是字符串格式。这是一个例子:
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 != ' ']
# ['/', '.-', '.-..', '.----', '..-.', '-.-', '-', '..---', '-.-.', '....', '.....']