正则捕获
2016-01-28 17:31
381 查看
目的: 给表达式 '[b]10+6/5-4*2[/b]' 中每个运算符左右都加一个空格字符,变成:[b]'[/b][b]10 + 6 / 5 - 4 * 2[/b][b]' [/b]
思路: 分组、捕获、替换
2. 替换字符中含参数 \g<1>
3. 模式中也可[b]含参数 \1[/b]
4. 模式中也可[b]含参数 :命名组 (?P=yourname)[/b]
思路: 分组、捕获、替换
1. 替换字符中含参数 \1 (此处不能叫参数,想不到叫什么,那就不管它~~)
>>> bds = '10+6/5-4*2' # 表达式 >>> m = re.sub(r'([*+-/])', ' \1 ', bds) # 注意\1左右皆有一个空格!! >>> m '10 + 6 / 5 - 4 * 2'
2. 替换字符中含参数 \g<1>
>>> bds = '10+6/5-4*2' # 表达式 >>> m = re.sub(r'([*+-/])', ' \g<1> ', bds) >>> m '10 + 6 / 5 - 4 * 2'
3. 模式中也可[b]含参数 \1[/b]
>>> greed = "Hello Jack! Are you OK, Jack?" >>> m = re.sub(r"Hello (\w+)! Are you OK, \1?", "\g<1>", greed) >>> m "Hello Jack! Are you OK, Jack?"
4. 模式中也可[b]含参数 :命名组 (?P=yourname)[/b]
>>> greed = "Hello Jack! Are you OK, Jack?" >>> m = re.sub(r"Hello (?P<yourname>\w+)! Are you OK, (?P=yourname)?", "\g<yourname>", greed) >>> m "Hello Jack! Are you OK, Jack?"
相关文章推荐
- eclipse 断点使用深入技能
- Struts2下载文件点击取消的异常处理
- 字符串包含, 字符串 a 中包含 b 中的字符串字母,如果b字符串大于a字符串即返回false
- Ubuntu下面安装mysql
- Android 5.0学习之AnimatedVectorDrawable
- Volley简介
- js024-最佳实践
- ViewController 生命周期
- I.MX6 隐藏电池图标
- Win10系统在应用商店安装软件时提示错误代码0x80070005的解决方法
- poj 1716 Integer Intervals(差分约束系统)
- 生产环境业务日志的管理
- android 混淆 proguard 注意
- C#调用Oracle存储过程
- git版本回退知识
- Java解决Emoji表情符问题
- Android 5.0学习之使用Material主题
- iOS 整体框架类图
- JAVA CAS原理深度分析
- Excel批量转换科学计数法为文本格式