2016-08-04 73 views
-1

我有一个大的.yml翻译文件,其中我想反转键和值。如何反转YAML文件中的键和值(键值)

我有:

some english sentence : une phrase en francais 
another one : une autre 

我想得到什么:

une phrase en francais : some english sentence 
une autre : another one 

我敢肯定,有可能是一堆易正则表达式的这样做,但我想不出如何做到这一点...

我不搜索脚本,只是一个正则表达式

+0

全都是你的钥匙方法和工作价值如此简单?特别是没有一个句子嵌入了':'嵌入式?就像有效的YAML一样''他说:'一些英语句子'''''Il dit:'une phrase en francais''' – Anthon

+0

我只有一个包含双点的人,我手动进行了更改。这确实是值得关注的 –

+1

因此,在我们都同意[用正则表达式解析XML是一个坏主意](http://stackoverflow.com/a/1732454/347964)之后,我们现在尝试用正则表达式来解析YAML吗? – flyx

回答

2

正则表达式:

(.*)\s+:\s+(.*) 

替代:

$2 : $1 

演示:https://regex101.com/r/lU6eM4/2

+0

谢谢,我不得不颠倒1和2,但它正是我期待的! –

+0

哎呀,对不起。固定 –

2

你可以用一个简单的正则表达式开始:

^(.*):(.*)$ 

^=行开始

=第一匹配组

(。*):=捕获:(。*)

=第二匹配组

$ =线的端

用于例子记事本++,你可以做:

搜索:^(.*):(.*)$

更换\2:\1

其中\2:第二场比赛组 的内容,并在那里\1:第一组比赛的内容

这只有当你一句话不包含:

+0

谢谢,这很好,你给一些解释! –