簡體   English   中英

從兩個字符之間提取字符串的一部分

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM