【问题标题】:Finding part of string using regular expressions使用正则表达式查找字符串的一部分
【发布时间】:2013-01-06 00:38:28
【问题描述】:

我是 Python 的新手,并不真正了解正则表达式。我有一些字符串,例如:

a = "Tom Hanks XYZ doesn't really matter"
b = "Julia Roberts XYZ don't worry be happy"
c = "Morgan Freeman XYZ all the best"

在每个字符串的中间有单词 XYZ 和一些文本。我需要正则表达式来找到并匹配这部分,更准确地说:从 XYZ 到字符串的结尾。

【问题讨论】:

  • 有什么理由需要使用正则表达式吗?像a[a.find("XYZ"):] 这样的东西不也可以吗?
  • 哦!你是对的 :) 我不知道没有正则表达式也能做到!

标签: python regex python-3.x


【解决方案1】:

除非通过正则表达式有特定要求,否则非正则表达式解决方案在这里可以正常工作。 有两种方法可以解决这个问题

1。 给定

a = "Tom Hanks XYZ doesn't really matter"

用分隔符对字符串进行分区,前面加一个空格

''.join(a.partition(" XYZ")[1:])[1:]

请注意,如果分隔符字符串不存在,这将返回一个空字符串。

2.

a[a.index(" XYZ") + 1:]

如果找不到字符串,这将引发异常ValueError: substring not found

【讨论】:

    【解决方案2】:

    使用下面的表达式

    (XYZ.*)
    

    它的作用是在它看到字母“XYZ”并匹配超过零次或多次以上的任何内容时开始捕获。

    【讨论】:

      【解决方案3】:
      m = re.search("(XYZ.*)", a)
      

      如果要显示字符串的那部分:

      print m.groups()[0]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-12
        • 1970-01-01
        相关资源
        最近更新 更多