regex - 文本编辑器 : Macros To Manipulate Strings

标签 regex macros automation text-editor

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

First Name,Last Name,Social Security 

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

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

有什么方法可以使用文本编辑器来做到这一点吗?我经常有此类要求。我记得用 vim 做过类似的事情。

最佳答案

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

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

或者您可以在 vim 中使用 awk(sed 等),例如:

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

对于宏,类似于 qayt,Pi("ESCf, i")ESCF2ESCF2 kbd>空格r_l~0 ~q

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

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

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

Vim 非常有能力。

关于regex - 文本编辑器 : Macros To Manipulate Strings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12715924/

相关文章:

java - 加密 Deflate 并编码为 Base64 Xml

regex - 在文本文件中按列对唯一元素进行排序

node.js - 如何使用 chokidar 忽略子目录中的文件

javascript - 按后缀删除单词

c++ - #define 参数之间的空格

linux - 使用 shell 脚本的文件中的总值,其中值以 gb、mb、kb、b 为单位

c# - TCP套接字测试

java - Java中将字符串拆分为字符串(包含一些特殊字符)和整数

macros - 语法参数指向语法模式变量?

c - 为调用 printf 的宏添加前缀