2

我经常对字符串集进行一些操作,通常我可以在 Notepad++ 中使用正则表达式。很久以前,我记得使用一些可以记录动作并执行相同操作的工具。例如,假设我有这个字符串。请记住,这只是一个例子。

First Name,Last Name,Social Security 

我想将其转换为以下内容:

first_name("First Name"),last_name("Last Name"),social_security("Social Security")

有没有办法使用一些文本编辑器来做到这一点?我经常有这些类型的要求。我记得用 vim 做类似的事情。

4

3 回答 3

2

它可以使用 vim 宏来完成,但“简单”替换更适合

:s/\(^\|,\)\(\S\+\) \(\S\+\)\(,\|$\)/\l\2_\l\3("\2 \3")/g

或者,您可以从内部为此使用awk( , 不管什么) ,例如:sedvim

:%!awk 'BEGIN {FS=","} { print whatever you modified your columns }'

使用宏,类似qayt,Pi("ESCf,i")ESCF2SPACEr_l~0~q

但这只是部分有效......(对于第一列)基本上:

  1. qa将宏记录到a寄存器中
  2. yt,(假设我们在该行的第一个字符上,这会拉到第一个,
  3. P将 yanked 测试放在实际光标位置之前(即行上的第一个字符)
  4. (保持光标位置)i("ESC插入(",然后离开插入模式
  5. f,i")ESC找到下一个空格并在之前插入")
  6. F2SPACEr_向后找到第二个space,并替换为_
  7. l~0~q移动到下一个字符,然后将其大小写更改为更低,然后移动到行的第一个字符,并更改大小写,最后退出录制宏。

然后通过正常模式运行宏@a

Vim 非常有能力。

于 2012-10-03T20:51:39.993 回答
0

您还可以尝试使用 java 多平台免费开源工具jEdit

它提供宏录制和编辑。

宏在BeanShell中转储/编写,jEdit 扩展了一组文档化的 API,允许通过宏实现您想要的任何内容。

jEdit 社区也共享许多宏脚本。

于 2012-10-05T20:33:04.550 回答
0

事实上,vim 允许你做这种事情。使用 Vim 宏功能,您可以在编辑器中录制和播放一系列动作。根据我的经验,它非常强大,比其他文本编辑器强大得多(因为在 vim 中编辑本身是基于命令序列的。)但是,如果您不熟悉 vim,则需要时间来学习如何使用 vim . 但它最终会导致高效的文本编辑和编码。

使用 vim 还有很多优点。互联网上也有很多文章解释它们。我建议在谷歌上搜索一下,这样你就可以自己决定了。

于 2012-10-03T21:02:33.660 回答