【问题标题】:regex: python to get string between parenthesis [duplicate]正则表达式:python获取括号之间的字符串[重复]
【发布时间】:2018-07-30 14:32:24
【问题描述】:

我需要在 python 中获取括号 { text } 之间的文本。 这是我的示例字符串,

my_txt = "/home/admin/test_dir/SAM_8860-fg_frame_{001,002,003,004,005,007}.png"

我需要 {} 之间的数字。

我试过了,

>>> re.search(r'{.*}',my_txt).group()
'{001,002,003,004,005,007}'

但它返回字符串和花括号。

预期输出是,'001,002,003,004,005,007'

如何在 python 正则表达式中省略花括号来获取字符串?

【问题讨论】:

  • re.search(r'{(.*?)}',my_txt).group(1)
  • re.search(r'{.*}',my_txt).group().replace('{', '').replace('}', '')
  • 看起来您正在尝试扩展大括号中的内容,就像 bash 一样。如果是这样的话,there exists a package for that
  • 使用lookbehind和lookahead:re.findall('(?<={).+?(?=})',my_txt)
  • @WiktorStribiżew 感谢您的评论,它按预期工作。并感谢您的反对

标签: python regex string curly-braces


【解决方案1】:

试试这个。它创建组并选择第一组

re.search(r'{(.*?)}',my_txt).group(1)

【讨论】:

    【解决方案2】:

    只获取matched group:

    >>> re.search(r'{(.*?)}',my_txt).group(1)
    '001,002,003,004,005,007'
    
    • group(0)整个匹配
    • group(1) 是第一个匹配项
    • ...

    【讨论】:

    • 这很完美
    猜你喜欢
    • 2011-07-17
    • 2010-09-29
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2013-07-20
    相关资源
    最近更新 更多