2017-02-10 153 views
1

我有一個字符串正則表達式<>

"Absolutely<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E64> Friendship goals exceeded here!! Sydney, Melbourne, Connecticut &amp; South Carolina<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E61>\r\n" 

我想只有<>部分從字符串中分離出來。我試過<.*>但它返回

<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E64> Friendship goals exceeded here!! Sydney, Melbourne, Connecticut &amp; South Carolina<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E61> 

我不想要他們之間的單詞。我想輸出爲,

["<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E64>", "<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E61>"] 

任何幫助。我卡在Python中。

+1

''是貪婪加一個''的第一次出現。?。例如'<.*?>'。 – chris85

+0

這不是重複的。 '。*?'是不夠的。 –

+0

@EricDuminil \t縮回。 – MYGz

回答

1

你需要一個negative lookahead。這種模式匹配,直到它找到第>後面沒有<

import re 

text = "Absolutely<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E64> Friendship goals exceeded here!! Sydney, Melbourne, Connecticut &amp; South Carolina<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E61>\r\n" 

pattern = "<.*?>(?!<)" 

print re.findall(pattern, text) 
#['<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E64>', '<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E61>'] 
+0

非常感謝!像魔術一樣工作。對模式的任何解釋都會有幫助。 – Yogaraj

+0

更新了文檔鏈接和簡短說明。你現在明白嗎? –

0

您可以使用​​而不是<.*>

這是你可以做什麼

s = "Absolutely<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E64> Friendship goals exceeded here!! Sydney, Melbourne, Connecticut &amp; South Carolina<U+653C><U+3E64><U+613C><U+3E30><U+623C><U+3E64><U+653C><U+3E64><U+623C><U+3E31><U+383C><U+3E61>\r\n" 

result = re.findall('<.*?>(?!<)',s) 
+0

他想要兩件物品。 – ryugie

+0

謝謝!但它返回一個由兩部分組成的連接字符串。我需要將它們分開爲兩個不同的。 – Yogaraj

相關問題