【问题标题】:MultiLine regex matching python多行正则表达式匹配python
【发布时间】:2021-12-11 01:17:54
【问题描述】:

下面是我的多行字符串。

sample='''
blah
blah
blah
blah
text.get(
'hi'
'you're
'welcome'
)
text.get(
'hi'
'i'm
'here'
> )
blah
blah
blah

我想根据符号>进行匹配,得到括号内的相关文字

text.get(
'hi'
'i'm
'here'
> )

我试过这段代码 text(.+)\((.*?)>(.*?)\) 它匹配 text.get 的两个实例。有人可以帮忙吗

【问题讨论】:

  • 您需要使用re.DOTALL 标志来允许.* 跨行匹配。
  • 您希望返回包含"'hi'""'i'm""'here'""> "这四行的字符串吗?顺便说一句,我认为您的意思是括号("("">"),而不是括号("[""]")。

标签: python regex multiline re


【解决方案1】:

你可以使用

\btext\.\w+\([^()]*\n> \)

请参阅regex demo详情

  • \b - 单词边界
  • text\. - text. 子字符串
  • \w+\( - 一个或多个单词字符,然后是一个左括号
  • [^()]* - 除括号外的零个或多个字符
  • \n> \) - 换行符、空格和右括号。

如果您需要捕获匹配的未知部分,请添加组,例如

\btext\.(\w+)\(([^()]*)\n> \)

在 Python 中,不要忘记使用原始字符串文字:r'...'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多