[英]Extract Parts of String from in Between Two Characters
如果我有這樣的字符串:
string = "12345|67891|23456|123456?"
如何取出“ 12345”和“ 67891”等(管道之間的字符)並將它們一直添加到列表中,直到問號(我在代碼中使用問號作為終止符) )?
這里也提出了類似的問題: 如何找到兩個特殊字符之間的字符串?
但我認為我的與我有所不同,因為我需要在同一行一行中多次執行此操作。
這是我希望實現的目標:
[PROGRAM BEGINS]
>>>string = "12345|67891|23456|123456?"
>>>string_list = []
>>>#some code to extract it and add it to a list called string_list
>>>print string_list
["12345","67891","23456","123456"]
[PROGRAM TERMINATES]
提前致謝!!
如果問號始終在末尾。
>>> string = "12345|67891|23456|123456?"
>>> string.rstrip('?').split('|')
['12345', '67891', '23456', '123456']
正則表達式執行這樣的任務相對較慢
您可以使用正則表達式分割不是\\D
任何數字:
import re
matches = filter(None, re.split('\D', "12345|67891|23456|123456?"))
print matches # ['12345', '67891', '23456', '123456']
您可以使用re
module做到這一點:
>>>import re
>>>s = "12345|67891|23456|123456?"
>>>string_list = re.findall(r'\d+',s)
>>>string_list
['12345', '67891', '23456', '123456']
您不需要使用問號:
>>> string = "12345|67891|23456|123456"
>>> string.split('|')
['12345', '67891', '23456', '123456']
>>>
您可以使用分割功能。 Str.split(“ |”)並將結果分配給數組變量。
考慮到您使用的是“?” 作為終止字符。 最安全的方法是:
>>> string = "12345|67891|23456|123456?"
>>> string.split('?')[0].split('|')
['12345', '67891', '23456', '123456']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.