Notepad++利⽤正则表达式批量删除关键词所在⾏
批量删除关键字所在⾏,语法:
^.*关键字.*\r?\n    (不保留空⾏)
^.*关键字.*$  (保留空⾏)
想在Notepad++中利⽤查功能,查⽂件中含有字段 “0|20180706” 的⾏并予以删除。
具体步骤:
1. Ctrl + F,查,查模式选择 '正则表达式',不选 '.匹配新⾏'
2. 查⽬标输⼊^.*0\|20180706.*\r?\n (如果要保留空⾏,则查^.*0\|20180706.*$)
3. 替换为:(空)
注意:
1. Notepad++的[全部替换]受[⽅向]约束,所以如果想“向下”全部替换,要把光标放到⽂⾸。
2. 匹配字段有 “|”,所以需要通过倒斜杠对 “|” 进⾏字符转义。否则会匹配所有含有“0”或者“20180706”字段所在的⾏。
使⽤场景:
整理Android S(12)版本⽀持哪些语种?
1. 进⼊core/res/res⽬录,通过命令 ll | 导出所有⽬录
2. notepad++打开⽂件,删除包含"mcc"关键字的所有⾏,语句: ^.*mcc.*\r?\n
在我们处理⽂件时,很多时候会⽤到查与替换。当我们想将⽂件中某⼀部分替换替换⽂件中另⼀部分时,怎么办呢?下⾯正则表达式给我提供⽅法。
正则表达式,提供复杂并且弹性的查与替换
注意: 不⽀持多⾏表达式 (involving \n, \r, etc).
1 基本表达式
符号解释
.
匹配任意字符,除了新⼀⾏(\n)。也就是说 “.”可以匹配 \r ,当⽂件中同时含有\r and \n时,会引起混乱。要匹配所有的字符,使⽤\s\S。
(…)这个匹配⼀个标签区域. 这个标签可以被访问,通过语法 \1访问第⼀个标签, \2 访问第⼆个, 同理 \3 \4 … \9。这些标签可以⽤在当前正则表达式中,或则替search和replace中的换字符串。
\1, \2, etc 在替换中代表1到9的标签区域(\1 to \9)。例如, 查字符串 Fred([1-9])XXX 并替换为字符串 Sam\1YYY的⽅法,当在⽂件中到Fred2XXX的字符串时,会替换为Sam2YYY。注意: 只有9个区域能使⽤,所以我们在使⽤时很安全,像\10\2 表⽰区域1和⽂本”0”以及区域2。
[…]表⽰⼀个字符集合, 例如 [abc]表⽰任意字符 a, b or c.我们也可以使⽤范围例如[a-z] 表⽰所以的⼩写字母。[^…]表⽰字符补集. 例如, [^A-Za-z] 表⽰任意字符除了字母表。
^匹配⼀⾏的开始(除⾮在集合中, 如下).
$匹配⾏尾.
*匹配0或多次, 例如 Sa*m 匹配 Sm, Sam, Saam, Saaam 等等.
+匹配1次或多次,例如 Sa+m 匹配 Sam, Saam, Saaam 等等.
匹配0或者1次, 例如 Sa?m 匹配 Sm, Sam.
{n}匹配确定的 n 次.例如, ‘Sa{2}m’ 匹配 Saam.
{m,n}匹配⾄少m次,⾄多n次(如果n缺失,则任意次数).例如, ‘Sa{2,3}m’ 匹配 Saam or Saaam. ‘Sa{2,}m’ 与 ‘Saa+m’相同
*?, +?, , {n,m}?⾮贪⼼匹配,匹配第⼀个有效的匹配,通常 ‘<.>’ 会匹配整个 ‘content’字符串 –但 ‘<.?>’ 只匹配 ” .这个标记⼀个标签区域,这些区域可以⽤语法\1 \2 等访问多个对应1-9区域。
符号解释
2 标记和分组
符号解释
(…)⼀组捕获. 可以通过\1 访问第⼀个组, \2 访问第⼆个.
(?:…)⾮捕获组.
(?=…)⾮捕获组 – 向前断⾔. 例如’(.*)(?=ton)’ 表达式,当遇到’Appleton’字符串时,会匹配为’Apple’.
(?<=…)⾮捕获组 – 向后断⾔. 例如’(?<=sir) (.*)’ 表⽰式,当遇到’sir William’ 字符串时,匹配为’ William’.
(?!…)⾮捕获组 – 消极的向前断⾔. 例如’.(?!e)’ 表达式,当遇到’Apple’时,会到每个字母除了 ‘l’,因为它紧跟着 ‘e’.
(?⾮捕获组 – 消极向后断⾔. 例如 ‘(?
(?P…)命名所捕获的组. 提交⼀个名称到组中供后续使⽤,例如’(?PA[^\s]+)\s(?P=first)’ 会到 ‘Apple Apple’. 类似的 ‘(A[^\s]+)\s\1’ 使⽤组名⽽不是数字.
(?=name)匹配名为name的组. (?P…).
(?
#comment)批注 –括号中的内容在匹配时将被忽略。
3 特殊符号
符号解释
\s匹配空格. 注意,会匹配标记的末尾. 使⽤ [[:blank:]] 来避免匹配新⼀⾏。
\S匹配⾮空⽩
\w匹配单词字符
\W匹配⾮单词字符
\d匹配数字字符
\D匹配⾮数字字符
\b匹配单词边界. ‘\bW\w+’ 到W开头的单词
\B匹配⾮单词边界. ‘\Be\B+’ – 到位于单⼦中间的字母’e’
\<This matches the start of a word using Scintilla’s definitions of words.
>This matches the end of a word using Scintilla’s definition of words.
\x运⾏⽤x来表达可能具有其他意思的字符。例如, [ ⽤来插⼊到⽂本中作为[ ⽽不是作为字符集的开始.
4 字符类
符号解释
[[:alpha:]]匹配字母字符: [A-Za-z]
[[:digit:]]匹配数字字符: [0-9]
[[:xdigit:]]匹配16进制字符: [0-9A-Fa-f]
[[:alnum:]]匹配字母数字字符: [0-9A-Za-z]
[[:lower:]]匹配⼩写字符: [a-z]
[[:upper:]]匹配⼤写字符: [A-Z]
[[:blank:]]匹配空⽩ (空格 or tab):[ \t]
[[:space:]]匹配空⽩字符:[ \t\r\n\v\f]
[[:punct:]]匹配标点字符: [-!”#$%&’()*+,./:;<=>?@[]_`{
[[:graph:]]匹配图形字符: [\x21-\x7E]
[[:print:]]匹配可打印的字符 (graphical characters and spaces)
[[:cntrl:]]匹配控制字符
5 替换操作
使⽤正则表达式的标记,通过()来包围想要⽤的字符,然后⽤\1 来替换字符串,第⼀个匹配⽂本。
例如:
正则匹配空字符
Text body Search string Replace string Result Hi my name is Fred my name is (.+)my name is not \1Hi my name is not Fred
The quick brown fox jumped over the fat
lazy dog brown (.+) jumped over
the (.+)
brown \2 jumped over
the \1
The quick brown fat jumped over the fox
lazy dog
6 限制
Support for regular expressions in PN2 is currently limited, the supported patterns and syntax are a very small subset of the powerful expressions supported by perl. 最⼤的限制是正则表达式只能匹配单⾏,不能⽤多⾏匹配表达。可以⽤Backslash Expressions代替.准备计划是使⽤PCRE库 library (used elsewhere in PN2) 来⽀持⽂档搜索.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。