使用正则表达式查找字符串的一部分

时间:2013-01-06 00:38:29

标签: python regex python-3.x

我是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到字符串的结尾。

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

使用以下表达式

(XYZ.*)

这样做的目的是在看到字母“XYZ”时开始捕捉并匹配超过零次或更多次的任何内容。

答案 2 :(得分:1)

m = re.search("(XYZ.*)", a)

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

print m.groups()[0]