我的字符串是象下面這樣:拆分以逗號
Str=S1('amm','string'),S2('amm_sec','string'),S3('amm_','string')
我如何可以分割字符串,以便我爲str_list項變爲:
Str_List[0]=S1('amm','string')
Str_List[1]=S2('amm_sec','string')
...
如果我使用Str.split(',')
則輸出是:
Str_List[0]=S1('amm'
...
我的字符串是象下面這樣:拆分以逗號
Str=S1('amm','string'),S2('amm_sec','string'),S3('amm_','string')
我如何可以分割字符串,以便我爲str_list項變爲:
Str_List[0]=S1('amm','string')
Str_List[1]=S2('amm_sec','string')
...
如果我使用Str.split(',')
則輸出是:
Str_List[0]=S1('amm'
...
我首先想到的是將',S'
替換爲' S'
使用正則表達式和拆分空間上。
import re
Str = re.sub(',S',' S',Str)
Str_list = Str.split()
嗨..感謝您的關注和幫助。我現在能夠分裂。但現在得到另一個問題: – Shikha
嗨..謝謝你看看,並幫助解決。我現在能夠分裂。但是現在又出現了另一個問題:SchematicField('amm_report_row','string')「,」 SchemaField('amm_subsection_row','float')「,」SchemaField('amm_subsection _desc','string')「] 和SCHEMA [0]給了我SCHEMA [0] = SchemaField('amm_reporting_row','string')等等 但我需要數組沒有雙引號和數組的每個元素在新行。 如果雙引號可以刪除,那麼它將是正確的。 – Shikha
是SchemaField的一個函數嗎?你想要一個函數調用列表嗎? –
你可以在Python中使用正則表達式與re
import re
Str = "S1('amm','string'),S2('amm_sec','string'),S3('amm_','string')"
lst = re.findall("S\d\(.*?\)", Str)
這會給你:
["S1('amm','string')", "S2('amm_sec','string')", "S3('amm_','string')"]
解釋正則表達式多一點:
S
首先你匹配'S'
\d
接下來看一個數字
\(
然後在中間任意數量的字符的「(」字符
.*?
(但匹配儘可能少的也可以),然後最後
\)
「)」字符
你可以用正則表達式多一點here
我建議用'\ w +'替換'S \ d'來更通用。 –
請格式化你的代碼打,因爲我t代表,它是不可讀的。另外,你幾乎可以肯定地討論* python lists * not * python arrays *。 –
你的字符串應該在引號中。按原樣,這會嘗試將'S1'作爲函數應用,並且即使定義了語法錯誤也會給出語法錯誤。 –
這個字符串從哪裏來?像'amm''這樣的內部字符串是否可以包含引號或逗號? –