我試圖用前綴符號解決一個問題,但我被困在我想將我的字串拆分成一個陣列的部分:如果我有輸入, 22 2我想讓陣列看起來像這樣:[' ', '22', '2']
我嘗試使用
import re
功能,但我不確定它是如何作業的。我試過
word.split(' ')
方法,但它只對空間有幫助..有什么想法嗎?PS:在前綴符號中,我還將有 - 和 *。所以我需要拆分字串所以空格不在陣列中,而 ,-,*在我想到的陣列中
word = input()
array = word.split(' ')
然后我想用這 3 個字符分割一個字串。
樣本輸入:
' -12 23*67 1'
輸出:
[' ', '-', '12', '23', '*', '67', '1']
uj5u.com熱心網友回復:
您可以使用re來查找文本中的模式,您似乎正在尋找以下之一: ,-和*或數字組。因此,編譯一個查找該模式的模式并找到所有與此模式匹配的模式,您將獲得一個串列:
import re
pattern = re.compile(r'([- *]|\d )')
string = ' -12 23*67 1'
array = pattern.findall(string)
print(array)
# Output:
# [' ', '-', '12', '23', '*', '67', '1']
還有一些測驗(將您的示例字串與預期輸出進行比較):
test_cases = {
' -12 23*67 1': [' ', '-', '12', '23', '*', '67', '1'],
' 22 2': [' ', '22', '2']
}
for string, correct in test_cases.items():
assert pattern.findall(string) == correct
print('Tests completed successfully!')
模式解釋(您可以在下面鏈接的檔案中閱讀有關此內容):
r'([- *]|\d )'
r在前面使其成為原始字串,以便 Python 從字面上解釋所有字符,這有助于正則運算式模式中的轉義序列,因為您可以使用一個反斜杠
(...)括號對它們進行轉義周圍(在這種情況下它們不是必需的)表示以后可以在需要時檢索的組(但在這種情況下它們無關緊要)
[...]表示可以匹配該組中的任何單個字符,因此如果有任何一個,它將匹配-, 并將*存在
|邏輯or, 意味著可以匹配任一側(在這種情況下區分數字和特殊字符)
\d數字的特殊轉義序列,意味著匹配任何數字, there 表示匹配任何一位或多位數字
有用:
re模塊,那里的檔案解釋了模式中的每個字符的作用
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/402994.html
標籤:
上一篇:每個函式使用單獨的檔案-全域匯入
