0

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

4

3 回答 3

2

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

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如果找不到字符串,这将引发异常

于 2013-01-06T04:35:23.270 回答
1

使用以下表达式

(XYZ.*)

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

于 2013-01-06T00:39:45.107 回答
1
m = re.search("(XYZ.*)", a)

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

print m.groups()[0]
于 2013-01-06T00:39:47.970 回答