我有一個字符串"MenuItem {Open source}"
。如何子串字符串?
如何從字符串中獲取字符串Open source
?
例如
str1 = "MenuItem {Open source}"
執行一些動作設定線二是...
print str2 # 'Open source'
我怎樣才能達致這使用Python或Jython的?
我有一個字符串"MenuItem {Open source}"
。如何子串字符串?
如何從字符串中獲取字符串Open source
?
例如
str1 = "MenuItem {Open source}"
執行一些動作設定線二是...
print str2 # 'Open source'
我怎樣才能達致這使用Python或Jython的?
你可以得到它regular expression。
>>> import re
>>> str1 = "MenuItem {Open source}"
>>> re.search(r'{(.*)}', str1).group(1)
'Open source'
您也可以通過分割字符串的{
和}
分隔符得到它(這裏我用str.rsplit
,而不是str.split
,以確保它分裂在最右邊的比賽):
>>> str1.rsplit('{')[1].rsplit('}')[0]
'Open source'
提取子字符串:Python中的字符串可以像數組一樣下標:s[4] = 'a'
。像在IDL中一樣,可以用切片符號來指定索引,即用冒號分隔的兩個索引。這將返回一個包含字符index1到index2-1的子字符串。指數也可以是負值,在這種情況下,它們從右邊算起,即-1是最後一個字符。因此子字符串可以像
s = "Go Gators! Come on Gators!"
x = s[3:9] #x = "Gators"
x = s[:2] #x = "Go"
x = s[19:] #x = "Gators!"
x = s[-7:-2] #x = "Gator"
因此在你的examplel中,你需要str2 = str1[10:21] = "Open Source"
。
當然,這是假設它總是開源和菜單項...
相反,你可以使用find
:
int find(sub [,start[,end]])
返回子字符串中第一次出現的數字位置。如果未找到子項,則返回-1。
x = s.find("Gator") #x = 3
x = s.find("gator") #x = -1
所以,你可以使用str1.find("{")
拿到第一支柱,並str1.find("}")
獲得第二。
或一個:
str2 = str1[str1.find("{"):str1.find("}")]
未經測試的代碼,您可能需要添加一個+1的地方,但在理論上,應該工作,或至少讓你在正確的軌道上;)
var1 = "MenuItem {Open source}"
var2 = var1.find('{')
var3 = var1.find('}')
ans = var1[var2+1: var3]
print ans
你有字符串「開源」!
閱讀`re`模塊文檔。閱讀有關字符串,它們的方法和切片的文檔。閱讀`for`和`while`循環的文檔。查找並閱讀關於Python的教程。看到一種模式? – martineau 2010-12-09 10:39:30