我正在尝试创建一个简单的降价乳胶转换器,只是为了学习

python和基本的正则表达式,但我不知道试图弄清楚为什么下面的代码不起作用:

re.sub (r'\[\*\](.*?)\[\*\]: ?(.*?)$', r'\\footnote{\2}\1', s, flags=re.MULTILINE|re.DOTALL)

我想转换像:

s = """This is a note[*] and this is another[*]

[*]: some text

[*]: other text"""

至:

This is a note\footnote{some text} and this is another\footnote{other text}

这就是我得到的(使用上面的正则表达式):

This is a note\footnote{some text} and this is another[*]

[*]: note 2

为什么模式只匹配一次?

编辑:

我尝试了以下先行断言:

re.sub(r'\[\*\](?!:)(?=.+?\[\*\]: ?(.+?)$',r'\\footnote{\1}',flags=re.DOTALL|re.MULTILINE)

#(?!:) is to prevent [*]: to be matched

现在它匹配所有脚注,但它们没有正确匹配.

s = """This is a note[*] and this is another[*]

[*]: some text

[*]: other text"""

给了我

This is a note\footnote{some text} and this is another\footnote{some text}

[*]: note 1

[*]: note 2

有什么想法吗?

python正则匹配_Python正则表达式只匹配一次相关推荐

  1. python正则判断_python正则表达式

    python要用正则要导入re包 . (点) 在默认模式,匹配除了换行的任意字符.如果指定了标签 DOTALL ,它将匹配包括换行符的任意字符. ^ (插入符号) 匹配字符串的开头, 并且在 MULT ...

  2. python正则库_python 正则表达式第三方库 re的基本使用

    re模块简介: 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,而re模块就是python中实现正则的模块 正则表达式简介: 非打印字符: 非打印字符也可以是正则表达 ...

  3. python正则判断_Python 正则表达式

    一.基础语法 1.1 语法速查 1.2 最简单的正则匹配 学习正则一般是从 match 和 search 函数开始,推荐教程. match match(pattern, string) 函数会从字符串 ...

  4. python正则匹配_python 正则表达式详解

    正则表达式是一个很强大的字符串处理工具,几乎任何关于字符串的操作都可以使用正则表达式来完成,作为一个爬虫工作者,每天和字符串打交道,正则表达式更是不可或缺的技能,正则表达式的在不同的语言中使用方式可能 ...

  5. python正则匹配_Python正则表达式详解

    正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述.匹配某个句法规则的字符串,常被用来检索.替换那些符合某个模式(规则)的文本.最初的正则表达式出现于理论计算机 ...

  6. python正则匹配_Python正则表达式初识(五)

    原标题:Python正则表达式初识(五) 正则表达式的内容很丰富,今天小编继续给大家分享Python正则表达式的基础知识.今天要给大家的讲的特殊字符是竖线"|".竖线"| ...

  7. python怎么匹配字符串_python正则表达式如何匹配字符串

    python正则表达式匹配字符串的方法:1.使用[(.+?)]这个正则表达式来提取单个位置的字符串:2.使用[(?P-)]这个正则表达式[匹配连续多个位置的字符串. python正则表达式匹配字符串的 ...

  8. python中正则表达式的默认匹配方式为贪婪匹配_python正则表达式贪婪算法与非贪婪算法与正则表达式子模式的简单应用...

    先引入一下百度百科对于正则表达式的概念: 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规则 ...

  9. python子串匹配_Python正则表达式如何匹配子串

    Python正则表达式有很多的时候需要我们进行子串的匹配,不单在进行替换的时候需要进行,在很多的地方都会用到这些代码.下面我们就来详细的学习如何用Python正则表达式获取自己想得到的匹配子串. 获取 ...

最新文章

  1. PHP的抽象类的一段简单代码示例
  2. 【08】Effective Java - 异常
  3. 《黑天鹅》读书笔记(part3)--那些声称注重过程而非结果的人并没有完全讲真话
  4. “自启动”树莓派上的 .NET Core 3.0 环境
  5. 如何使用可外部化的接口在Java中自定义序列化
  6. 利用BitLocker和VHD实现共享文件加密
  7. Java网络通信 TCP网络,ServerSocket类
  8. 数据之路 - Python爬虫 - 正则表达式
  9. 【问题2】如何保证缓存与数据库的双写一致性?
  10. php base64原理
  11. 《IPD:华为研发之道》读书介绍
  12. Wps文档目录页码加小括号?
  13. 基于单片机的心率监测系统设计(#0495)
  14. onBlur和onChange冲突解决方法
  15. gdb reading symbols xxxx 段错误
  16. 【财富空间】一个人彻底的改变 一定始于内心的改变
  17. 汽车行业深度报告-特斯拉生产制造革命:一体化压铸
  18. steam助手_Steam的冬季特卖来了!
  19. java面向对象-抽象类和接口
  20. 带你探索元宇宙鲜为人知的另一面

热门文章

  1. js与html编码不同,js与html中unicode编码的使用
  2. java值栈_Struts2学习笔记-Value Stack(值栈)和OGNL表达式
  3. 广电运通不好进吗_我可以说郑州新风的安装大部分都是垃圾吗?
  4. linux上dig命令,Linux dig命令(示例代码)
  5. 加工中心刻字宏程序_FANUC OI系列图书——车床、铣床及加工中心编程
  6. 【Mybatis-Plus】(一)初识Mybatis-Plus 入门案例
  7. 原 BinaryWriter和BinaryReader(二进制文件的读写)
  8. pg_resetxlog清理的pg_xlog下的WAL日志
  9. 《R的极客理想—工具篇》—— 第2章 时间序列基础包
  10. BlockingQueue详解