2013-01-06 103 views
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到字符串的結尾。

+1

有一些原因,你需要使用正則表達式這將引發異常ValueError: substring not found?不會像'a.find(「XYZ」):''也能工作嗎? – DSM

+0

哦!你是對的:) 我不知道它可以完成沒有正則表達式! – user1952026

回答

1

使用下面的表達式

(XYZ.*) 

這樣做是開始時,看到字母「XYZ」和匹配任何超出零次或多次捕捉。

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

如果你想顯示字符串的一部分:

print m.groups()[0] 
+0

@DSM:確認,謝謝!固定 –

2

Unles沒有通過正則表達式做了具體的要求,非正則表達式的解決方案將很好地工作在這裏。 有兩種可能的方法可以解決這個問題

1. 鑑於

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

分區的字符串分隔符,前面有一個空格

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

請注意,如果分離器字符串不存在,這將返回一個空字符串。

2.

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

如果字符串沒有找到

相關問題