python re.sub 括号匹配替换匹配到的内容后接数字

如果代码为:
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 括号匹配替换匹配到的内容后接数字的更多相关文章
- Python 基础之正则之二 匹配分组,正则相关函数及表达式修饰符
		四.匹配分组 [元字符] 分组符号 a|b 匹配字符a 或 字符b (如果两个当中有重合部分,把更长的那个放前面) (ab) 匹配括号内的表达式 ,将()作为一个分组 num 引用分组 ... 
- Java经典实例:正则表达式,替换匹配的文本
		import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by Frank * 替换匹配的文本 */ ... 
- 使用sublime 正则匹配替换大批量代码
		1,在使用Django框架时,导入之前没有使用框架完成的网页,这时会遇到静态文件地址不匹配的问题,需要大量修改. 研究了一下sublime编译器,大家都使用正则匹配替换 2,位置在查找--替换与匹配, ... 
- Vim正则表达式匹配替换字符串
		/********************************************************************** * Vim正则表达式匹配替换字符串 * 说明: * 用V ... 
- python文本 字符串开头或者结尾匹配
		python文本 字符串开头或者结尾匹配 场景: 字符串开头或者结尾匹配,一般是使用在匹配文件类型或者url 一般使用startwith或者endwith >>> a='http:/ ... 
- 匹配替换指定文本为html标签
		最近看了一道前端面试题,是关于正则的,用尽可能低复杂度的函数,匹配替换指定文本为html标签,题目是这样的: 特定语法匹配替换 说明:匹配字符串中形如 =g文字文字= 的语法,并将相应部分转化为对应的 ... 
- win7+cuda+anaconda python+tensorflow-gpu+keras安装成功版本匹配汇总
		win7+cuda+anaconda python+tensorflow-gpu+keras安装成功版本匹配汇总 2019-09-20 15:06:03 wyx100 阅读数 38更多 分类专栏: M ... 
- python 正则表达式与JSON-正则表达式匹配数字、非数字、字符、非字符、贪婪模式、非贪婪模式、匹配次数指定等
		1.正则表达式:目的是为了爬虫,是爬虫利器. 正则表达式是用来做字符串匹配的,比如检测是不是电话.是不是email.是不是ip地址之类的 2.JSON:外部数据交流的主流格式. 3.正则表达式的使用 ... 
- Python正则表达式如何进行字符串替换实例
		Python正则表达式如何进行字符串替换实例 Python正则表达式在使用中会经常应用到字符串替换的代码.有很多人都不知道如何解决这个问题,下面的代码就告诉你其实这个问题无比的简单,希望你有所收获. ... 
随机推荐
- javascript 高级选择器:querySelector 和 querySelectorAll
			querySelector 和 querySelectorAll 方法是 W3C Selectors API 规范中定义的.他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素. 目前几乎主流 ... 
- [转]oracle存储过程、声明变量、for循环
			oracle存储过程.声明变量.for循环 1.创建存储过程 create or replace procedure test(var_name_1 in type,var_name_2 out ty ... 
- bootstrap大图轮播手机端不能手指滑动解决办法
			网上看了很多解决办法,几乎本质都是一样的,都是引入一个滑动的js插件,加入一段js代码,即可生效,但是我试了hammer.js 和 touchSwipe.js 都不生效,也找不到原因是什么,目前在网上 ... 
- C#委托和事件定义和使用
			委托 定义委托的语法和定义方法比较相似,只是比方法多了一个关键字delegate ,我们都知道方法就是将类型参数化,所谓的类型参数化就是说该方法接受一个参数,而该参数是某种类型的参数,比如int.st ... 
- #include”* .h“ 在查找预编译头使用时跳过
			warning C4627: “#include <windows.h>”: 在查找预编译头使用时跳过 解决办法: 原因是没有在cpp文件最前一行添加没有添加 #include &quo ... 
- html5--移动端视频video的android兼容,去除播放控件、全屏等
			html5 中的video 在手机浏览器中的总结所有页面播放时, 如果选择全屏播放, 播放画面将浮动到屏幕的最上层 IOS 手机 自动播放 播放界面浮动文字 播放时是否自动全屏 能否嵌入在页面中播 ... 
- HDU 2594 Simpsons’ Hidden Talents (KMP)
			题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594 这题直接用KMP算法就能够做出来,只是我还尝试了用扩展的kmp,这题用扩展的KMP效率没那么高. ... 
- Linux上Nginx部署配置
			一.下载软件 openssl-fips-2.0.10.tar.gz pcre-8.40.tar.gz zlib-1.2.11.tar.gz nginx-1.10.2.tar.gz gcc-c++ 下载 ... 
- 单独使用 EHCache
			1. EHCache 的特点,是一个纯Java ,过程中(也可以理解成插入式)缓存实现,单独安装Ehcache ,需把ehcache-X.X.jar 和相关类库方到classpath中.如项目已安装了 ... 
- linux连接sybase数据库-isql
			转自:http://blog.knowsky.com/196438.htm 想要linux连接sybase数据库用命令isql: isql [-U login id] [-P password] [- ... 
