我正在使用Atom文本编辑器,尽管我很高兴切换到任何支持正则表达式查找和替换的程序。
我的目标是:
搜索包含单词
的任何文本行*group:
并替换为
*page
*group:
*group
在*page
后面带有制表符的位置。然后,我需要将所有直接位于组下的内容也都“分页”。
一种可能是在Atom中执行以下操作:
查找:\*group:(.*)
替换:*page\n\t\t*group:$1
但是,这是有问题的,因为它会产生如下所示的块:
*page
*group: GROUP1
*question: TEXT QUESTIONS
*shuffle
ANSWER CHOICE 1
ANSWER CHOICE 2
*save: var_1
*throwaway
>> GROUP1_answer = "ANSWER CHOICE 1"
但是我需要像这样缩进“组”下的所有内容
*page
*group: GROUP1
*question: TEXT QUESTIONS
*shuffle
ANSWER CHOICE 1
ANSWER CHOICE 2
*save: var_1
*throwaway
>> GROUP1_answer = "ANSWER CHOICE 1"
关于如何执行此操作的任何想法?
答案 0 :(得分:1)
您可以使用记事本++分两步进行操作。
1-在*page
之前添加*group
2-在未以*page
开头的每一行之前添加一个制表符(使用正则表达式的否定先行)
第1步:
在记事本++中,按CTRL + H
在字段Find what:
中输入以下格式:(\*group:(((?!\*group).)*))
在字段Replace with:
中输入以下格式:*page\n$1
按Alt + A
现在,您在每个*page
之前添加*group
。
结果:
*page
*group: GROUP1
*question: TEXT QUESTIONS
*shuffle
ANSWER CHOICE 1
ANSWER CHOICE 2
*save: var_1
*throwaway
>> GROUP1_answer = "ANSWER CHOICE 1"
*page
*group: GROUP1
*question: TEXT QUESTIONS
*shuffle
ANSWER CHOICE 1
ANSWER CHOICE 2
*save: var_1
*throwaway
>> GROUP1_answer = "ANSWER CHOICE 1"
第2步:
在记事本++中再次按CTRL + H
在字段Find what:
中输入以下格式:(^((?!\*page.*$).*))
在字段Replace with:
中输入以下格式:\t$1
按Alt + A
结果:
*page
*group: GROUP1
*question: TEXT QUESTIONS
*shuffle
ANSWER CHOICE 1
ANSWER CHOICE 2
*save: var_1
*throwaway
>> GROUP1_answer = "ANSWER CHOICE 1"
*page
*group: GROUP1
*question: TEXT QUESTIONS
*shuffle
ANSWER CHOICE 1
ANSWER CHOICE 2
*save: var_1
*throwaway
>> GROUP1_answer = "ANSWER CHOICE 1"
通过这种方式,制表符将位于所有未以*page
开头的行之前。
只需确保未选中matches newline
选项。