正则表达式 - 如何删除前 10 行/和最后 10 行
Regex - How to delete the first 10 lines / and the last 10 lines
我正在尝试制作一个正则表达式,用 "Search and Replace all"
删除我的 200 个 txt 文件的第一行和最后 10 行
我试过 (\s*^(\h*\S.*)){10}
删除包含的前 10 行空白,但效果不佳。
在 Notepad++ 中,您需要匹配整个文档文本,但只捕获从 11 到末尾的行。
查找: \A.*(?:\R.*){9}\R?([\s\S]*)
替换:</code></p>
<p>要删除最后 10 行:</p>
<p><em>查找</em>: <code>^.*(?:\R.*){9}\z
替换:空
详情:
\A
- 文档开头
.*
- 除换行符号(整个第一行)以外的任何零个或多个字符
(?:\R.*){9}
- 9 个换行符序列 (\R
),后跟除换行符以外的任何 0+ 个字符
\R?
- 一个可选的换行符(如果只有 10 行)
([\s\S]*)
- 第 1 组捕获文档的其余部分。
第二个正则表达式:
^
- 行首
.*
- 行本身到换行符
(?:\R.*){9}
- 9 行:换行符 + 除换行符字符外的任何 0+ 个字符
\z
- 文件结束.
是对存储在组 1 中的文本的反向引用。
在 20 多行文档上点击 全部替换 按钮删除前 10 行的结果:
最后 10 行:
只是一个简单的全部替换
(?m)(?:\A(?>^.*\R?){10}|(?>^.*\R?){10}\z)
展开
(?m)
(?:
\A
(?> ^ .* \R? ){10}
| (?> ^ .* \R? ){10}
\z
)
如果不支持\R
语法,替换为
(?>\r\n|\n|\r|\f|\x0b|\x85)
- Ascii
(?>\r\n|\n|\r|\f|\x0b|\x85|\x{2028}|\x{2029})
- 统一码
我正在尝试制作一个正则表达式,用 "Search and Replace all"
删除我的 200 个 txt 文件的第一行和最后 10 行我试过 (\s*^(\h*\S.*)){10}
删除包含的前 10 行空白,但效果不佳。
在 Notepad++ 中,您需要匹配整个文档文本,但只捕获从 11 到末尾的行。
查找: \A.*(?:\R.*){9}\R?([\s\S]*)
替换:</code></p>
<p>要删除最后 10 行:</p>
<p><em>查找</em>: <code>^.*(?:\R.*){9}\z
替换:空
详情:
\A
- 文档开头.*
- 除换行符号(整个第一行)以外的任何零个或多个字符(?:\R.*){9}
- 9 个换行符序列 (\R
),后跟除换行符以外的任何 0+ 个字符\R?
- 一个可选的换行符(如果只有 10 行)([\s\S]*)
- 第 1 组捕获文档的其余部分。
第二个正则表达式:
^
- 行首.*
- 行本身到换行符(?:\R.*){9}
- 9 行:换行符 + 除换行符字符外的任何 0+ 个字符\z
- 文件结束.
是对存储在组 1 中的文本的反向引用。
在 20 多行文档上点击 全部替换 按钮删除前 10 行的结果:
最后 10 行:
只是一个简单的全部替换
(?m)(?:\A(?>^.*\R?){10}|(?>^.*\R?){10}\z)
展开
(?m)
(?:
\A
(?> ^ .* \R? ){10}
| (?> ^ .* \R? ){10}
\z
)
如果不支持\R
语法,替换为
(?>\r\n|\n|\r|\f|\x0b|\x85)
- Ascii
(?>\r\n|\n|\r|\f|\x0b|\x85|\x{2028}|\x{2029})
- 统一码