我試圖使用Python的RE獲取兩個等號(=helloThere=
)之間的信息,但不是多於一個等號(==helloThere==
)之間的內容。獲取兩個等號之間的字符串
這是我想出了到目前爲止,但它沒有這樣做:
result = re.findall('={1}(.*?)={1}', text)
我試圖使用Python的RE獲取兩個等號(=helloThere=
)之間的信息,但不是多於一個等號(==helloThere==
)之間的內容。獲取兩個等號之間的字符串
這是我想出了到目前爲止,但它沒有這樣做:
result = re.findall('={1}(.*?)={1}', text)
使用負回顧後和負前瞻。
>>> import re
>>> re.findall(r'(?<!=)=([^=]+)=(?!=)', '=hello there=')
['hello there']
>>> re.findall(r'(?<!=)=([^=]+)=(?!=)', '==hello there==')
[]
如果只有這兩個條件:
1 - 開始,以=
2 - 應該有隻有兩個=
然後,這是我給你的建議:
s = '=helloThere='
test_char = '='
if (s[0] == s[-1] == test_char) and s.count('=') == 2:
print(s[1:-1])
# or print(s.strip('=')
這是有效的,如果=
之間的表達式不是c繼續=
。
感謝您的回覆。我一直在尋找findall的東西,因爲輸入字符串很長,我想查找這種模式的多次出現。 – Alshafai
是的,正則表達式是你的方式,我的解決方案,你將不得不將它包裝在一個for循環,計算循環步驟,這將增加已經處理正則表達式更多的複雜性。 –
謝謝,這正是我一直在尋找的。 – Alshafai