我想使用 number 關鍵字列印與給定字串匹配的整個單詞,但它只列印數字。有人可以幫忙嗎?
import re
string = ''' '%SYSDB-SYSDB-6-TIMEOUT_EDM',
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY',
'%SYSDB-SYSDB-6-TIMEOUT_EDM',
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY'
'''
output = re.findall(r"-[1-4]-", string)
print(output)
電流輸出 ['-3-', '-4-', '-3-', '-4-']
預期輸出:
['%HA-HA_WD-3-DISK_ALARM_ALERT',
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY']
uj5u.com熱心網友回復:
您可以用[
and括起您的字串]
,然后使用ast
將結果轉換為字串串列,然后使用您的正則運算式過濾該串列:
import re, ast
s = ''' '%SYSDB-SYSDB-6-TIMEOUT_EDM',
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY',
'%SYSDB-SYSDB-6-TIMEOUT_EDM',
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY'
'''
l = ast.literal_eval(f'[{s}]')
rx = re.compile(r"-[1-4]-")
print(list(filter(rx.search, l)))
請參閱Python 演示。
輸出:
[
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY',
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY'
]
uj5u.com熱心網友回復:
在您的正則運算式中使用捕獲組:
output = re.findall(r"'(. -[1-4]-. )'", string)
編輯:例如:
import re
string = ''' '%SYSDB-SYSDB-6-TIMEOUT_EDM',
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY',
'%SYSDB-SYSDB-6-TIMEOUT_EDM',
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY'
'''
#output = re.findall(r"-[1-4]-", string)
output = re.findall(r"'(. -[1-4]-. )'", string)
print(output)
給出:
[
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY',
'%HA-HA_WD-3-DISK_ALARM_ALERT',
'%ROUTING-FIB-4-RETRYDB_NONEMPTY'
]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517300.html