对一句正则表达式的理解

在《Python基础教程》的第198页上看到这样一句:

re.sub(emphasis_pattern, r'<em>\1</em>', 'Hello, *world*!')

其中:emphasis_pattern = r'\*([^\*]+)\*'

结果为:'Hello, <em>world</em>!'

 

对emphasis_pattern = r'\*([^\*]+)\*'

头尾的\*取消了元字符*,即只是作为普通字符

中间的()是一个子模式,字符串中与其匹配的子字符串可以用/1进行模式逆引用

[ ]+表示[ ]中的字符至少匹配一个

^\*表示匹配除了*号外的任何符号

与其匹配的例子:*abc*   (其中abc可以换成除*的任何字符)

 

对re.sub(emphasis_pattern, r'<em>\1</em>', 'Hello, *world*!')

调用函数sub(pat, repl. string)

首先要明白string是匹配pat的,函数的作用是将 匹配的部分用字符串repl替换掉:

如re.sub(r'a[abc]+d' , 'python' , 'hello,abcd')就是:'hello,python'

所以上面那个奇怪的东东其实就是用<em>\1</em>这个字符串来替换掉'Hello, *world*!'满足emphasis_pattern的部分而已(其实就是*world*)

那么\1是什么东西?

查了些资料,发现这个是re里面的子模式的逆向应用

\1代表的是'Hello, *world*!'匹配emphasis_pattern中( )里面的部分,也就是world

OK!现在就变成了:

re.sub( r'\*([^\*]+)\*', '<em>world</em>', 'Hello, *world*!')

用<em>world</em>替换掉 *world*,搞定

关于子模式和逆向引用:http://www.cnblogs.com/ylan2009/articles/2382870.html

通过理解这个正则语句,学到了不少

转载于:https://www.cnblogs.com/ylan2009/archive/2012/03/07/2382880.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495109.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

城市大脑建设的3个误区,大脑模型的分歧是关键

作者&#xff1a;刘锋 互联网进化论作者 计算机博士城市大脑是目前智慧城市建设热门的概念&#xff0c;因该说这是一个在中国本土诞生的科技概念和技术模型&#xff0c;作为一个新的领域&#xff0c;城市大脑究竟如何建设&#xff0c;事实上存在了两种不同的发展路径&#xff0…

关于mysql修改密码后的问题

今天心血来潮&#xff0c;把连接mysql的密码改了&#xff0c;wampSever重启后就遇到“phpMyAdmin 试图连接到 MySQL 服务器&#xff0c;但服务器拒绝连接。您应该检查 config.inc.php 中的主机、用户名和密码&#xff0c;并且确定这些信息与 MySQL 服务器的管理员所给出的信息一…

JavaScript 和 typeScript 中的 import、from

From&#xff1a;https://segmentfault.com/a/1190000018249137?utm_sourcetag-newest Github - allowSyntheticDefaultImports should be the default?exports、module.exports和export、export deault到底是咋回事JavaScript 中有多种 export 的方式&#xff0c;而 TypeSc…

深度丨建立合资公司,深度参与运营:详解景驰的无人驾驶生意经

来源&#xff1a;亿欧摘要&#xff1a; 对于景驰科技而言&#xff0c;最终实现商业价值的做法绝对不仅仅是把改装好的无人车卖出高价。在该公司看来&#xff0c;切入无人驾驶需求最旺盛的出租车市场&#xff0c;与出行服务公司、主机厂乃至政府产业基金成立合资公司&#xff0c…

使用SQL Server存储ASP.NET Session变量

创建和配置ASP.NET Session状态数据库在基于NLB&#xff08;网络负载平衡&#xff09;环境下的ASP.NET Web应用程序开发&#xff0c;我们需要将Session存储在数据库中供多个Web应用程序调用&#xff0c;以下为配置方法及注意事项。1.创建用于存储ASP.NET Session的数据库&#…

Linux工具快速教程

From&#xff1a;https://linuxtools-rst.readthedocs.io/zh_CN/latest/index.html 博客&#xff1a;http://blog.me115.comGithub地址&#xff1a;https://github.com/me115/linuxtools_rst分为三个部分&#xff1a; 第一部分为基础篇&#xff0c;介绍我们工作中常用的工具的…

学界 | DeepMind想用IQ题测试AI的抽象思维能力,进展还不错

来源&#xff1a;大数据文摘摘要&#xff1a;抽象理解能力一直是人类引以为豪的智慧来源。阿基米德基于对物体体积的抽象理解&#xff0c;悟到了物体的体积与物体浮力之间的关系。这就是抽象推理的魔力。基于神经网络的机器学习模型取得了惊人的成绩&#xff0c;但是测量其推理…

frida hook so层、protobuf 数据解析

手机安装 app &#xff0c;设置代理&#xff0c;然后开始抓包。 发现数据没法解密&#xff0c;查看请求的 url 是 http://lbs.jt.sh.cn:8082/app/rls/monitor&#xff0c;使用 jadx 反编译 app 后搜索这个 url&#xff08;提示&#xff1a;可以只搜索 url 中一部分&#xff0c;…

PHP session的工作原理

PHP SESSION原理我们知道&#xff0c;session是在服务器端保持用户会话数据的一种方法&#xff0c;对应的cookie是在客户端保持用户数据。HTTP协议是一种无状态协议&#xff0c;服务器响应完之后就失去了与浏览器的联系&#xff0c;最早&#xff0c;Netscape将cookie引入浏览器…

大数据技术与应用解读及案例分析(PPT)

来源&#xff1a;网络大数据摘要&#xff1a;大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。大数据就是未来的石油。未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学…

pywin32库 : Python 操作 windows 系统 API

Python 模块虽多&#xff0c;但也不可能满足所有需求。而且&#xff0c;模块为了便于使用&#xff0c;通常都封装过度&#xff0c;有些功能无法灵活使用&#xff0c;必须直接调用Windows API 来实现。要完成这一目标&#xff0c;有两种办法&#xff0c;一种是使用 C 编写 Pytho…

JVM内存管理:深入Java内存区域与OOM

Java与C之间有一堵由内存动态分配和垃圾收集技术所围成的高墙&#xff0c;墙外面的人想进去&#xff0c;墙里面的人却想出来。 概述&#xff1a; 对于从事C、C程序开发的开发人员来说&#xff0c;在内存管理领域&#xff0c;他们即是拥有最高权力的皇帝又是执行最基础工作的劳动…

华为秘密作战计划曝光,重注研发AI芯片挑战英伟达,轮值董事长挂帅

雷刚 问耕 发自 凹非寺 量子位 报道 | 公众号 QbitAI摘要&#xff1a;据报道&#xff0c;对于如何把AI引入所有业务&#xff0c;华为内部已经开启了代号为“达芬奇”的作战计划&#xff0c;并且成为华为高层每月一次讨论会的重点议题&#xff0c;也有不少华为高管以“D项目”来…

Python --- ctypes库的使用

ctypes 的官方文档 英文文档&#xff1a;https://docs.python.org/3/library/ctypes.html中文文档&#xff1a;https://docs.python.org/zh-cn/3.10/library/ctypes.html Python--ctypes(数据类型详细踩坑指南&#xff09;&#xff1a;https://zhuanlan.zhihu.com/p/145165873…

java单利模式写法

public class Something {private Something() {}private static class LazyHolder {public static final Something INSTANCE new Something();}public static Something getInstance() {return LazyHolder.INSTANCE;} } 这样的懒汉单例模式的实现&#xff0c;唯一的缺点是当…

机器学习近年来之怪现象

来源&#xff1a;网络大数据人工智能领域的发展离不开学者们的贡献&#xff0c;然而随着研究的进步&#xff0c;越来越多的论文出现了「标题党」、「占坑」、「注水」等现象&#xff0c;暴增的顶会论文接收数量似乎并没有带来更多技术突破。最近&#xff0c;来自卡耐基梅隆大学…

PySide6 : Qt for Python 教程

Qt for Python 教程&#xff1a;https://doc.qt.io/qtforpython/tutorials/index.html 官方文档示例&#xff1a;https://doc.qt.io/qtforpython/examples/index.html Qt for Python 提供了一系列带有演练指南的教程&#xff0c;以帮助新用户入门。 其中一些文档是从 C 移植到…

C语言scanf函数奇遇记

C语言scanf函数奇遇记 作者&#xff1a;ocean 撰写日期&#xff1a;2011-11-20 博客链接&#xff1a;http://oceanspace.tk 看《The C Programming Language》中关于scanf函数部分时随意敲了几行代码&#xff0c;本以为简单的不得了&#xff0c;都有点“不屑于”敲&#xff…

PySide6 信号、槽

信号与槽的入门应用&#xff08;一&#xff09;&#xff1a;https://blog.csdn.net/jia666666/article/details/81774175 信号与槽的再细分&#xff08;二&#xff09;&#xff1a;https://blog.csdn.net/jia666666/article/details/81774858 信号与槽的高级玩法&#xff08;三…

芯片业又起波澜!博通189亿美元收购遭质疑,股价一度跌近19%

来源&#xff1a;华尔街见闻摘要&#xff1a;如果说博通上次收购高通面临的最大“对手”是特朗普政府&#xff0c;这次收购CA的“对手”可能是华尔街。如果说博通上次收购高通面临的最大“对手”是特朗普政府&#xff0c;这次收购CA的“对手”可能是华尔街。美东时间周三&#…