2017-10-04 221 views
0

我得到了一個充滿東西的文本。我想匹配msg的每一次出現,直到{匹配正則表達式{

我的正則表達式看起來像這樣regex = re.compile('"msg".+"{"')

根據我的理解,這應該直接匹配msg,然後任何一次或多次達到{

但是沒有得到結果。如果我只使用msg它打印出來,但我需要打印整個結果(直到{)。

我試圖使用.{14}但由於字符的數量總是不同,所以這是無濟於事的。

+0

如果一行上有多個'',你想匹配直到第一個還是直到最後一個? –

+1

我會使用'^ [^ {] *' – Arount

+0

當事情不起作用時,試着簡單一點。嘗試編寫一個匹配「msg」的正則表達式,然後構建它 – RPGillespie

回答

1

您需要像這樣跳過{\{{是一個有效的正則表達式字符,因此您需要將其轉義,否則,正則表達式將嘗試使用其特殊含義。轉義它意味着正則表達式與字面上的{字符匹配。否則,你的正則表達式看起來很好。

+1

這並非總是如此:https://regex101.com/r/dzgBuJ/1,'msg。+ {'是'Python中完美的有效表達式'。 – Jan