0

我需要像这样拆分一个字符串:

{tab 3}1/*{tab}*/30116{tab}2012{tab, 2}01{tab}{2016}enter

{我想将进出的部分分开}

这个想法是为要传递给 python pyautogui的命令创建一个文本解释器。

结果应该是有序的,可能是一个包含命令和字符串的列表。

[ 'tab, 3', '130116', 'tab', '2012', 'tab, 2', '01', 'tab', '2016', 'enter']

顺序很重要。使用Regex Tester我执行此模式:

re.compile (ur '(\{(|.)*\})', re.MULTILINE | re.IGNORECASE)

这标志着 和 之间的所有{部分}。但我不知道如何提取或拆分字符串。

/*在获得这部分之前,*/我已经正确移除了和之间的部分。他们可以忽略它。

如果可能的话,我想要一个 Pythonic 的方法来解决这个问题。我从 python 开始,为此,我必须跳过解决方案。

如果有任何错误,请原谅我。我来自巴西。

如果已经有其他口译员,请告诉我。

提前致谢。

亚历山大

由谷歌翻译器翻译。

4

1 回答 1

1

我知道评论已经被过滤掉了,所以我提出了一个简单的解决方案,不确定它是否是最“pythonic”但足够pythonic并且很容易掌握。

您可以re.split根据{}字符使用,然后通过调用删除空字符串来删除filter空字符串。

import re

r="{tab 3}130116{tab}2012{tab, 2}01{tab}{2016}enter"

z = filter(lambda x : x!="",re.split("[{}]",r))

print(z)

输出:

['tab 3', '130116', 'tab', '2012', 'tab, 2', '01', 'tab', '2016', 'enter']

(可能还有其他方法可以在没有使用正则表达式的过滤器部分的情况下进行,更复杂)

于 2016-08-25T15:02:02.673 回答