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