【发布时间】:2021-02-17 01:55:00
【问题描述】:
我有一个 10,000 行长的文档。 我想删除所有不超过 3 个字母的行,不包括以 § 符号开头的任何行或所有大写字母的行。
示例: 移除前:
§day
DOG
Happy
Monday
Now
Yes
Sunday
§new day.txt
DIY
Leg
Books
Car
Home
移除后:
§day
DOG
Happy
Monday
Sunday
§new day.txt
DIY
Books
Home
DOG & DIY 不受影响,因为它们都是大写字母。
以§ 开头的行也不受影响。
我的尝试
我知道这段代码可以用来让正则表达式忽略所有大写的行和所有以§开头的行(在示例中,代码正在搜索many or north or one)。
(^(?:(?:§.*|[^[:alpha:]\n\r]*[[:upper:]]+(?:[^[:alpha:]\n\r]+[[:upper:]]+)*[^[:alpha:]\n\r]*))$|(?i:\b(?:many|north|one)\s+of\b))|(?i:\bof\b)
我也知道this code可以用来查找所有不超过3个字母的单词
'^.{1,3}$'
有什么方法可以组合它们吗?
我尝试将many|north|one 替换为'^.{1,3}$',但没有成功。
【问题讨论】:
标签: regex sublimetext3