• notepad++ 批量替换删除指定字符之后 或者 之前的字符,Notepad+批量替换使用大全


    notepad++ 批量替换删除指定字符之后 或者 之前的字符,Notepad+批量替换使用大全

    资源宝分享:www.httple.net

    注意: 不支持多行表达式 (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 bodySearch stringReplace stringResult
    Hi my name is Fredmy name is (.+)my name is not \1Hi my name is not Fred
    The quick brown fox jumped over the fat lazy dogbrown (.+) jumped over the (.+)brown \2 jumped over the \1The quick brown fat jumped over the fox lazy dog

    其他方法:

    想要把除了 “无敌大奶爸” 之外的所有内容去除。怎么做?
    还是Ctrl+F,然后把不是无敌大奶爸的内容一个个输进去,在替换成空白,重复这个操作,
    直到所有杂物排除掉。就可以搜到无敌大奶爸了。

    逐个铲除多余的

    最后得到干净的奶爸(这个反向查找不是反选别误会)
    但这个始终是指标不治本,如果杂物更更更更多!!
    没事,正则表达式出动吧!

    我们撤销到刚才的凌乱状态,然后还是查找F,查找模式选择:正则表达式。
    然后查找目标输入这个:

        无\S+敌\S+大\S+奶\S+爸

    这样就能查到从无开始到爸结尾,中间穿插敌大奶的地方了。
    \S =代表匹配任何一个字符,大写的。
    \S+就是匹配任何一个字符包括往后的任何字符。一行内。

    所以他会按照这个搜索: 无XX敌XX大XX奶XX爸
    然后我们直接将他替代成: 无敌大奶爸,在搜索,就能找到所有的大奶爸了。

    原来不止一个大奶爸

    *******!!无敌大大大大奶爸也会被搜索出来!
    无XX敌XX大XX奶XX爸有个弊端就是,如果里面有相同的字也会被忽略掉。
    比如: 无XX敌敌X大大大X奶XX爸 => 无敌大奶爸
    这样原本不是一个真的奶爸也会因为中间去掉了字数变成大奶爸,怎么办?

    嗯哼?如果这样的话,我推荐你用两个字之间来逐个搜索了。

    或者用人的智慧眼来分析呗,大家都是字,何必互相为难。

    那我就用:   无\W+敌\W+大\W+奶\W+爸

    \W = 匹配任何非单词字符。等价于“[^A-Za-z0-9_]”,后面跟 + 号同上,往后扩展。
    这样我就只改英文字符和数字下划线等,无视中文,无敌大大大跟我没关系了!!

    关于其他好玩的正则表达式,可以参考百度自己按。可以改数字,改标点XXX一大堆。
    这里就不说了。

    高级替代: 改变包含在其中的内容
    想改包含在中间的某几个数字。

    1. "display": {
    2. "thirdperson_righthand": {
    3. "rotation": [89, 180, 0],
    4. "translation": [-5.75, 0, -4]
    5. },

    目标:想把 [?,x,?] 里的数字改成别的数字怎么做?

    1. "display": {
    2. "thirdperson_righthand": {
    3. "rotation": [89, abc, 0],
    4. "translation": [-5.75, abc, -4]
    5. },

    如果你要一个个替代 [] 里的内容,字数躲起来会很麻烦.
    所以干脆直接用正则表达式解决。
    搜索:  , \d+,  替换成 , 233,     (借助两个逗号定位来获取中间的数字 \d 代表0-9的数字)

    其他方法:

    删除“123”之后的所有字符用:

    123.*?$

    删除“123”之前的所有字符用:

    ^.*123

    1. 1、按组合键Ctrl + F,查找模式选择 '正则表达式',不选 '.匹配新行'
    2. 2、查找目标输入 :
    3. ^.*关键字.*\r?\n (不保留空行)
    4. ^.*关键字.*$ (保留空行)
    5. 3、替换为:(空)

  • 相关阅读:
    【苹果家庭推送】这是iPhone上SMS功能的严重安全漏洞
    设计模式——组合模式
    基于opencv进行双目相机的标定
    ELK专栏之ES索引-04
    Cesium学习二:使用entity绘制point
    基于WPF技术的换热站智能监控系统08--实现右上模式控制
    Gin+WebSocket实战——在线聊天室WebSocketDemo详细使用教程
    “不务正业”的美图公司也是一名“赌徒”
    华为云云耀云服务器L实例评测|云耀云服务器L实例部署HertzBeat实时监控系统
    Git 忽略.gitignore文件自身/git仅本地忽略某些文件
  • 原文地址:https://blog.csdn.net/u012241616/article/details/133874053