我有類似如下條目:如何獲得兩個分隔符巨蟒之間串
"<![CDATA[Lorem ipsum feed for an interval of 30 seconds]]>"
如何獲得最裏面的方括號中的字符串即「Lorem存有飼料30秒的時間間隔」
其中一些條目是普通字符串,有些是由[]如上
我有類似如下條目:如何獲得兩個分隔符巨蟒之間串
"<![CDATA[Lorem ipsum feed for an interval of 30 seconds]]>"
如何獲得最裏面的方括號中的字符串即「Lorem存有飼料30秒的時間間隔」
其中一些條目是普通字符串,有些是由[]如上
使用string.See的分割方法中的下面的代碼段。
string = "<![CDATA[[[[[Lorem ipsum feed for an interval of 30 seconds]]]]]]]>"
inner_str = string.split('[')[len(string.split('[')) -1 ].split(']')[0]
print inner_str
不錯!只是第二行可以寫在一個更好的方法:'inner_str = string.split( '[')[ - 1] .split( ']')[0]' – Hossein
商定Hossien。 –
可以使用什麼是在答覆中提到,以this question,但爲了得到最內層的字符串,你將有分隔的遞歸稱之爲。
修改接受的答案,你可以使用以下實現它:
def find_inner(s):
temp = s.partition('[')[-1].rpartition(']')[0]
if not temp:
return s
return find_inner(temp)
我相信這不會涵蓋OP使用案例中的一些角落案例,例如,數據可能包含不平衡的括號。 –
使用正則表達式:
import re
string = '<![CDATA[Lorem ipsum feed for an interval of 30 seconds]]>'
reverse = string[::-1]
start = len(string)-re.search(r'\[', reverse).start()
end = re.search(r'\]', string).start()
print(string[start:end])
你應該找到最後[
和第一]
之間的文本。在上面的代碼中,我使用re.search()
函數來查找第一次出現的字符。找到]
的第一個匹配項是可以的。但要找到[
最後一次出現,我扭轉串並發現它的第一次出現(位置由len(string)
減去,因爲它是落後的索引)。
最佳顯示每一個在您的文章 – Roelant
可能的選項之一能有之前或之後的'<![CDATA [...]]>'是什麼?如果沒有,你可能只用一個片'[9:-3] [?如何找到了兩個特殊字符的字符串]' –
的可能的複製(http://stackoverflow.com/questions/14716342/how-do -i-find-the-string-between-two-special-characters) – Mayazcherquoi