【发布时间】:2013-02-08 21:02:00
【问题描述】:
使用文本编辑器,无需编写 JavaScript 函数(例如,无法使用这个好答案:Replacing the nth instance of a regex match in Javascript)
我该如何处理这样的事情(我无法控制的专有代码结构)
map(key1, value1, key2, value2, key3, value3, key4, value4 ...)
并将其转换为这个
map(
key1, value1,
key2, value2,
key3, value3,
key4, value4
...
)
我发现的一个选项是使用这个正则表达式来查找每个第二个逗号(([^,]*,){2})
然后替换为\1\n\t
但我想改进它:
1.它不能很好地处理第一行和最后一行
map(key1, value1,
key2, value2,
key3, value3,
key4, value4 ...)
2。仅适用于平面结构
例如我想不出办法来改变这个
map(key1, value1, key2, map(key3, value3, key4, value4 ...), key5, value5)
到这里
map(
key1,value1,
key2,map(
key3,value3,
key4,value4
),
key5,value5
)
使用正则表达式,还是有办法?
【问题讨论】:
-
如果你用 vim 标记它,有一天你会把记事本扔掉。 :)
-
使用脚本语言(例如 Perl、Python、Ruby 等)来执行更改。这就是这些工具的用途。尤其是因为您可以嵌套
map语句...您需要编写一个解析器。 -
@Kent ok :) 好笑我没想到要找一个基于 windows 的 vim,刚下载了一个,会试试
-
@JackManey 是的,我会默认这样做,但希望有一种方法可以在编辑器中使用快捷方式来做到这一点,我想答案只是编写一个 sublime text 2 python 插件(我相信你也可以对 vim 做同样的事情)。只是想知道是否有任何方法可以单独使用正则表达式......
标签: regex vim notepad++ sublimetext2