当前位置: 首页 > 面试题库 >

带标志的Python re.sub不会替换所有出现的事件

梁磊
2023-03-14
问题内容

Python文档说:

re.MULTILINE:指定时,模式字符’^’在字符串的开头和每行的开头(紧随每个换行符之后)匹配…默认情况下,’^’仅在字符串的开头匹配…

那么,当我得到以下意外结果时,该怎么办?

>>> import re
>>> s = """// The quick brown fox.
... // Jumped over the lazy dog."""
>>> re.sub('^//', '', s, re.MULTILINE)
' The quick brown fox.\n// Jumped over the lazy dog.'

问题答案:

看一下的定义re.sub

re.sub(pattern, repl, string[, count, flags])

第四个参数是计数,你使用re.MULTILINE(是8)作为计数,而不是标志。

使用命名参数

re.sub('^//', '', s, flags=re.MULTILINE)

或先编译正则表达式:

re.sub(re.compile('^//', re.MULTILINE), '', s)


 类似资料:
  • 问题内容: 可以说我有一串。如何编写将字符串转换为的方法?还是那里有可用的方法实现? 到目前为止我尝试过的 我正在用它来编写休眠标准。它适用于但不适用。Havent尝试了其他任何字符串。 问题答案: 您可以从0到提取子字符串形式。在此子字符串中,将所有替换为空字符串。之后,与subtring合并(从头到尾)。 就像是:

  • 问题内容: 我是否缺少某些东西,或者StringBuilder是否缺少与普通String类相同的“用字符串B替换所有出现的字符串A”功能?StringBuilder的替换功能并不完全相同。有没有什么方法可以更有效地使用普通的String类生成多个String? 问题答案: 好了,你可以编写一个循环: 请注意,在某些情况下,从背面开始使用可能会更快。我怀疑是用短字符串替换长字符串的情况-因此,当你开

  • 问题内容: 我有这个字符串: 正在做: 似乎只删除了上面字符串中的第一个匹配项。 如何替换 所有 出现的内容? 问题答案: 注意:请勿在对性能有要求的代码中使用此代码。 作为简单文字字符串的正则表达式的替代方法,您可以使用 一般模式是 在某些情况下,它过去比使用和正则表达式要快,但是在现代浏览器中,情况似乎不再如此。 结论:如果您有性能至关重要的用例(例如,处理数百个字符串),请使用Regexp方

  • 如果你确实需要更多的信息,就说出来。 任何帮助都很感激! 编辑

  • 如何替换所有标签

  • 请看下面的代码: 当我运行时,我得到以下异常: 线程“主”java.util.regex.PatternSyntaxException异常:指数4附近无与伦比的收盘“)” 0.3港元)预订:virginiawong@fahkco.com.hk4)FCR 根据我的理解,我必须对参数'(',')'进行转义,我试图这样做(看看代码中的注释部分)没有任何异常,但是我添加到字符串的换行符似乎没有出现。