如果代码为:

text = re.sub(r'(?<=[{])([a-z]+)6(?=[}])', r'\13', text)

上面代码会报错,因为没有组合13,所以不能获得组合13的内容。

但是我们要实现的是将{ni6}中的ni6替换成ni3,我们应该这么写:

text = re.sub(r'(?<=[{])([a-z]+)6(?=[}])', r'\g<1>3', text)

另外,记录我的批量替换代码(将文件夹下的所有文件的拼音6都替换成3):

# -*- coding: utf-8 -*-

import os
import glob
import shutil
import re here = os.path.dirname(os.path.abspath(__file__)) for path in glob.glob(os.path.join(here, '**', '*'), recursive=True):
if path.endswith('.py') or not os.path.isfile(path):
continue
print(path)
dst_path = path + '.jacen_bak'
os.rename(path, dst_path)
# shutil.copy2(path, dst_path)
try:
with open(dst_path, 'r', encoding='utf-8') as f:
text = f.read()
text = re.sub(r'(?<=[{])([a-z]+)6(?=[}])', r'\g<1>3', text)
with open(path, 'w', encoding='utf-8') as f:
f.write(text)
os.remove(dst_path)
except UnicodeDecodeError as e:
os.rename(dst_path, path)
print(e, path)

python re.sub 括号匹配替换匹配到的内容后接数字的更多相关文章

  1. Python 基础之正则之二 匹配分组,正则相关函数及表达式修饰符

    四.匹配分组   [元字符] 分组符号 a|b   匹配字符a 或 字符b  (如果两个当中有重合部分,把更长的那个放前面) (ab)   匹配括号内的表达式 ,将()作为一个分组 num  引用分组 ...

  2. Java经典实例:正则表达式,替换匹配的文本

    import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank * 替换匹配的文本 */ ...

  3. 使用sublime 正则匹配替换大批量代码

    1,在使用Django框架时,导入之前没有使用框架完成的网页,这时会遇到静态文件地址不匹配的问题,需要大量修改. 研究了一下sublime编译器,大家都使用正则匹配替换 2,位置在查找--替换与匹配, ...

  4. Vim正则表达式匹配替换字符串

    /********************************************************************** * Vim正则表达式匹配替换字符串 * 说明: * 用V ...

  5. python文本 字符串开头或者结尾匹配

    python文本 字符串开头或者结尾匹配 场景: 字符串开头或者结尾匹配,一般是使用在匹配文件类型或者url 一般使用startwith或者endwith >>> a='http:/ ...

  6. 匹配替换指定文本为html标签

    最近看了一道前端面试题,是关于正则的,用尽可能低复杂度的函数,匹配替换指定文本为html标签,题目是这样的: 特定语法匹配替换 说明:匹配字符串中形如 =g文字文字= 的语法,并将相应部分转化为对应的 ...

  7. win7+cuda+anaconda python+tensorflow-gpu+keras安装成功版本匹配汇总

    win7+cuda+anaconda python+tensorflow-gpu+keras安装成功版本匹配汇总 2019-09-20 15:06:03 wyx100 阅读数 38更多 分类专栏: M ...

  8. python 正则表达式与JSON-正则表达式匹配数字、非数字、字符、非字符、贪婪模式、非贪婪模式、匹配次数指定等

    1.正则表达式:目的是为了爬虫,是爬虫利器. 正则表达式是用来做字符串匹配的,比如检测是不是电话.是不是email.是不是ip地址之类的 2.JSON:外部数据交流的主流格式. 3.正则表达式的使用 ...

  9. Python正则表达式如何进行字符串替换实例

    Python正则表达式如何进行字符串替换实例 Python正则表达式在使用中会经常应用到字符串替换的代码.有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获. ...

随机推荐

  1. Jquery实现选项卡功能

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 利用kseq.h parse fasta/fastq 文件

    在分析中经常需要统计fasta/fastq文件的序列数和碱基数, 但是没有找到一些专门做这件事的小工具,可能是这个功能太简单了: 之前用自己写的perl的脚本统计这些信息, 当fastq文件非常大时, ...

  3. 获取pc硬件信息杂记

    //Download by http://www.NewXing.com #include "StdAfx.h" #include "RegUtil.h" #i ...

  4. c++ __int64

    C++的64位整数[原]by 赤兔 在做ACM题时,经常都会遇到一些比较大的整数.而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648 ...

  5. GC之二--GC是如何回收时的判断依据、shallow(浅) size、retained(保留) size、Deep(深)size

    回到问题“为何会内存溢出?”. 要回答这个问题又要引出另外一个话题,既什么样的对象GC才会回收? 一.对象存活方式判断方法 在上一篇文章<GC之一--GC 的算法分析.垃圾收集器.内存分配策略介 ...

  6. 学习 TList 类的实现[4]

    现在准备一步步地模拟 TList 类, 建立一个自己的 TMyList. 首先, 这个类中应该包括前面提到的那个 Pointer 数组(TPointerList)的指针(PPointerList): ...

  7. FairyGUI学习

    官网:http://www.fairygui.com/ 教程:http://www.taikr.com/course/446/tasks 博客:http://gad.qq.com/article/de ...

  8. 最值得一看的几条简单的谷歌 Google 搜索技巧,瞬间提升你的网络搜索能力

    可能你和我一样,几乎每天都必须与搜索引擎打交道,不过很多时候,你辛辛苦苦搜了半天也没找到合适的资料,然而“高手们”上来一眨眼功夫就能命中目标了.这并不是别人运气好,而是搜索引擎其实是有很多技巧可以帮助 ...

  9. C#设计模式系列:抽象工厂模式(AbstractFactory)

    出自:http://www.cnblogs.com/libingql/archive/2012/12/09/2809754.html 1. 抽象工厂模式简介 1.1 定义 抽象工厂(Abstract ...

  10. APP的缓存文件放在哪里?

    只要是需要进行联网获取数据的APP,都会在本地产生缓存文件.那么,这些缓存文件到底放在什地方合适呢?系统有没有给我们提供建议的缓存位置呢?不同的缓存位置有什么不同呢? 考虑到卸载APP必须删除缓存 在 ...