【问题标题】:Python conditional using regex with multiline string [duplicate]Python条件使用正则表达式和多行字符串[重复]
【发布时间】:2020-02-14 18:06:06
【问题描述】:

我需要帮助解决非常简单的问题,即使用正则表达式和多行字符串的条件。对我来说没有意义,为什么这不起作用:

if(re.match(r"\w", " \n\n\n  aaaaaaaaaaaa\n\n", re.MULTILINE)):
    print('ok')
else:
    print('fail')

fail

我预计结果是ok,但没有匹配任何数据。我尝试使用https://regex101.com/r/BsdymE/1,但它有效,但在我的代码中无效。

【问题讨论】:

    标签: python regex


    【解决方案1】:

    re.match 仅在搜索字符串位于开头时才会返回匹配项。

    https://docs.python.org/3/library/re.html#re.match

    re.match(pattern, string, flags=0)

    如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。如果字符串与模式不匹配,则返回 None;请注意,这与零长度匹配不同。

    尝试改用re.search(pattern, string, flags=0)

    【讨论】:

      【解决方案2】:

      来自pydoc re.match

      尝试在字符串的开头应用模式,返回一个 匹配对象,如果没有找到匹配项,则为 None。

      (强调我的)。所以,问题不在于字符串是多行的,而在于它不是 beginning 与单词类字符。如果要检查字符串是否在任何地方包含某些内容,请改用re.search

      【讨论】:

        猜你喜欢
        • 2022-06-10
        • 2020-05-05
        • 2022-10-13
        • 1970-01-01
        • 2011-06-06
        • 2019-09-02
        • 2021-04-11
        • 2015-11-20
        • 2019-09-28
        相关资源
        最近更新 更多