使用Regex将Maya ASCII命令拆分为片段

辛格尔顿

我一直在努力写出一行正则表达式来分割我需要的一切。我真的想尽我所有的可能性,然后再诉诸第二次数据。

目前,我一直在使用此正则表达式将一行ascii数据拆分为多个片段:

line = 'setAttr -s 2 ".iog[0].og"'
re.split(r'("[^"\\]*(?:\\.[^"\\]*)*"|[^\s();]+)', line)

// Result: ['setAttr', '-s', '2', '".iog[0].og"']

我真正想要的是仅捕获字符串引号内的文本以及所有常规单词,数字和标志:

// Result: ['setAttr', '-s', '2', '.iog[0].og']

我知道这似乎很愚蠢,但是性能时间是此代码的主要成败点。Shlex目前无法解决,因为处理成千上万行数据花费的时间太长。

有人知道这样的表达吗?

维克多·史翠比维

您可以通过两个捕获组来捕获所需的零件,然后将它们组合起来:

r'"([^"\\]*(?:\\.[^"\\]*)*)"|([^\s();]+)'
   ^                      ^  ^         ^

之所以会成功,是因为捕获组一次只能填充一个,其中一个始终为空:

["{}{}".format(x,y) for x, y in re.findall(r'"([^"\\]*(?:\\.[^"\\]*)*)"|([^\s();]+)', line)]

参见Python演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字符串拆分为最大长度为X的片段-仅在空格处拆分

Bash:将stdout从多个并发命令拆分为多个列

将字符串拆分为命令行参数

Tensorflow:将图像动态拆分为多个片段

使用UNIX命令行工具将JSON拆分为多行

JS / RegEx:将字符串拆分为单词,但使用异常regex

Windows上的Postgres-如何将PSQL命令行拆分为多行?

将bash脚本拆分为单独的命令,并一一运行

将mp3拆分为可独立播放的片段,可以根据需要缝回

Github操作:将长命令拆分为多行

Javascript将String拆分为不同的片段,并以数组形式返回

将Float拆分为数字并转换为ASCII(包括逗号)

使用ffmpeg将视频文件拆分为多个片段

将输入拆分为不同的命令,然后合并结果

如何将PDF文件快速拆分为单页(即从“终端”命令行中)?

根据列值将Pandas Dataframe拆分为单独的片段

根据列值将Pandas Dataframe拆分为单独的片段

我可以将一个片段的UI(xml)部分拆分为很多(android)

将Maya渲染层拆分为文件

将数据集拆分为N个片段

如何将ref拆分为跨多个命令推送的块?

如何将sed命令拆分为多行

Java-如何将字符串拆分为命令的参数

将链接的命令拆分为命令

是否可以将tmux.conf中的命令拆分为多行?

将 cat 命令的输出拆分为单独的行

将字符串命令拆分为多行

是否可以将 AWK 命令拆分为多行而不会出错?

使用 regex_findall 将文本拆分为单词