我有一個我試圖從文本中提取的數字串列。這是我正在使用的內容:
Expression = r"(\d \.)?(\d \.)?(\d \.)?(\d \.)?(\*|\d )"
ExpressionResult = (re.findall(Expression, str(OriginalString)))
print('original')
print(str(OriginalString))
print('parsed')
print(str(ExpressionResult))
這是我的輸出:
original
['', '', '7', '', '', '', '9.2', '', '', '', '9.1', '', '', '', '9.2', '', '', '', '9.5.5', '', '', '', '9.5', '', '', '', '10.1.1', '', '', '', '10.1', '', '', '']
parsed
[('', '', '', '', '7'), ('9.', '', '', '', '2'), ('9.', '', '', '', '1'), ('9.', '', '', '', '2'), ('9.', '5.', '', '', '5'), ('9.', '', '', '', '5'), ('10.', '1.', '', '', '1'), ('10.', '', '', '', '1')]
看起來運算式正在按組而不是匹配進行拆分。我如何獲得比賽?
預期輸出:
7, 9.2, 9.1, 9.2, 9.5.5, 9.5, 10.1.1, 10.1
uj5u.com熱心網友回復:
不完全確定您為什么使用正則運算式?
只需使用串列推導來創建新串列,如果需要,使用以下.join()函式加入串列:
OriginalString = ['', '', '7', '', '', '', '9.2', '', '', '', '9.1', '', '', '', '9.2', '', '', '', '9.5.5', '', '', '', '9.5', '', '', '', '10.1.1', '', '', '', '10.1', '', '', '']
ExpressionResult = [x for x in OriginalString if x != '']
print(", ".join(ExpressionResult))
輸出:
7, 9.2, 9.1, 9.2, 9.5.5, 9.5, 10.1.1, 10.1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/527082.html
標籤:Python细绳列表
