Regex 使用GREP升华:搜索单词,忽略某些行
我有一个超过24000行的长文本文档。 我需要搜索83个不同的单词,当这些单词单独出现在一行中时,我需要删除这83个单词的所有实例(参见下面的示例)。这些词将被删除。但搜索必须忽略:Regex 使用GREP升华:搜索单词,忽略某些行,regex,grep,sublimetext3,Regex,Grep,Sublimetext3,我有一个超过24000行的长文本文档。 我需要搜索83个不同的单词,当这些单词单独出现在一行中时,我需要删除这83个单词的所有实例(参见下面的示例)。这些词将被删除。但搜索必须忽略: 只有大写文字的所有行 以§§§符号开头的所有行(不管行的其余部分是大写字母还是小写字母) 范例 §History of TIME HISTORY OF TIME of Future Past Of Many Of Official Officer North of the town I am one of th
- 只有大写文字的所有行
- 以§§§符号开头的所有行(不管行的其余部分是大写字母还是小写字母)
§History of TIME
HISTORY OF TIME
of
Future
Past
Of
Many Of
Official
Officer
North of the town
I am one of them
如果我搜索中的,则在上面只会突出显示第三行和第六行
第一行不会突出显示,因为它以§§
开头
第二行不会高亮显示,因为它位于所有大写字母中
许多
,城镇北部
,以及我是其中一员
将不会突出显示,因为它本身不是的
这在崇高中是可能的吗?我认为搜索所有83个单独的单词会使查询变得太复杂。但如果我可以一次搜索一个单词(确保它跳过所有大写的行和所有以§
开头的行,那么就可以了)
如果这在崇高中是不可能的,有没有其他方法我可以使用 当一行不是以§
开头或是ALLCAPS,并且不是的一部分时,许多,以北的,中的一个等短语,您说要删除所有出现的的
使用
查找:(^(?:(?:§.*.[^:阿尔法:][\n\r]*[:上:][]+(?:[^:阿尔法:][\n\r]+[:上:][上:][:阿尔法:][\n\r]*)$|(?i:\b(?:多个北一个)s+of\b));(?i:\bof\b)
替换:$1
看
详细信息
(^(?:(?:§.*.[^:阿尔法:][\n\r]*[:上:][]+(?:[^[:阿尔法:][\n\r]+[:上:][]上:][^[:阿尔法:][\n\r]*)$。(?i:\b(?:多个北一个)s+of\b))
-捕获组1(从替换模式中以$1
占位符引用):
^
-行的开头
(?:
-组:
§.*
|
-或
[^[:alpha:][\n\r]*[:upper:][]+(?:[^[:alpha:][\n\r]+[:upper:][]+)*[^[:alpha:][\n\r]*
-0+字符(除LF/CR符号和字母外),然后1+大写字母,然后0+非换行符和非字母字符序列,后跟1+大写字母,最后是0+非换行符和非字母字符序列
)$
-结束
|
或
(?i:\b(?:many | north | one)\s+of\b)
-一个不区分大小写的组,匹配many
,north
或one
,后跟1+空格,然后of
作为整个单词
|
-或
(?i:\bof\b)
-不区分大小写的组:
作为一个单词
请参阅SublimiteText3测试,注意选择正则表达式模式和区分大小写的匹配:
§
或$
。。。你所说的是什么意思,其中许多内容不会突出显示,因为它不是独立的。
-你的意思是你的搜索必须区分大小写吗?或者它必须是行中唯一的单词,但在这种情况下,为什么要排除大写单词等?所有的行都是大写的
-所以你只想排除
中的
,因为如果你要查找的行中只有
的
不会有任何其他大写字母。注释不用于扩展讨论;这段对话已经结束。