簡體   English   中英

Python-如何使用正則表達式拆分字符串?

[英]Python - How to split a string using regular expressions?

我想拆分以下字符串以分別獲取每個屬性:

String_one: 'archived': True, 'id': '30znq1', '_has_fetched': True
String_two: \\'hidden\\': False, \\'user_reports\\': [], \\'num_reports\\': None

我知道所有屬性都以“,'”或“,\\\\'”結尾。最初我只是使用兩個string.spilt()

1) line.split(', \'')
2) line.split(', \\\'')

這些都完成了工作,但是我正在處理大量數據,而且這兩個都非常通用,並且模式在數據中應有的地方被匹配了。

所以我嘗試了一個re.split:

reg_split_no_esc = re.compile(', \'(.*\': .*)')
reg_split_esc    = re.compile(', \\\'(.*\\\': .*)')

line = re.split(reg_split_esc, line)
line = re.split(reg_split_no_esc, line)

正則表達式用於查找第一個“,\\'”,如果在其后跟單引號和冒號的字符,則表示正則表達式,以捕捉“,\\'”之后的內容。

reg_split_no_esc在第一個拆分條件下拆分,但現在不再適用,其他模式只是不起作用。

任何幫助將非常感激

編輯:我的第一個正則表達式工作,但它只拆分第一個元素,而其余的不拆分,因此它看起來像這樣:

_uniq': None

suggested_sort': None, 'secure_media_embed': {} 'report_reasons': None, '_params': {}

為了完整起見,我想出了答案,這是前瞻性斷言

最終模式如下:

re.compile(', \'(?=\w*\': )')

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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