【问题标题】:Regex that matches anything between ' '匹配 ' ' 之间的任何内容的正则表达式
【发布时间】:2013-07-06 23:45:51
【问题描述】:

请你帮我解决这个问题:

考虑以下行:

"Duplicate entry 'blah@gmail.com' for key 'email'"

我需要一个正则表达式来匹配 ' ' 之间的任何内容,包括空格、换行符以及 ' ' 之间的任何字符

我使用的代码是:(Python)

value = "Duplicate entry 'blah@gmail.com' for key 'email'"
dict = re.findall(r'regex goes here', value)
print dict[0]
print dict[1]

我需要打印:

blah@gmail.com

email

【问题讨论】:

  • 如何区分一个“'”和下一个?
  • 我不知道,看来不可能:(
  • 你为什么不给出一个真实的消息示例,我们会告诉你应该如何解析它。
  • 忽略“''”之间的“'”怎么样?

标签: python regex python-2.7 python-3.x


【解决方案1】:
>>> m = re.match("Duplicate entry '(?P<value>.*)' for key '(?P<key>.*)'", "Duplicate entry 'blah@gmail.com' for key 'email'")
>>> m.group('value')
'blah@gmail.com'
>>> m.group('key')
'email'

【讨论】:

    【解决方案2】:
    string = "Duplicate entry 'blah@gmail.com' for key 'email'"
    pattern = re.compile("'[^']*'")
    matches = pattern.findall(string)
    # matches == ["'blah@gmail.com'", "'email'"]
    

    如果您想强制引号中至少包含一个字符:

    pattern = re.compile("'[^']+')
    

    【讨论】:

      猜你喜欢
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 2016-11-03
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 2016-01-16
      相关资源
      最近更新 更多