我有一個字串,由一些機器學習演算法產生,通常由多行組成。在開頭和結尾,可以有一些不包含任何字符的行(空格除外),中間應該有 2 行,每行包含一個單詞,后跟一些數字和(有時)其他字符。
像這樣的東西
first_word 3 5 7 @ 4
second_word 4 5 67| 5 [
我需要提取 2 個單詞和數字字符。
我可以通過執行以下操作來消除空行:
lines_list = initial_string.split("\n")
for line in lines_list:
if len(line) > 0 and not line.isspace():
print(line)
但現在我想知道:
- 如果有更強大的通用方法
- 如何通過提取單詞和數字來決議剩余的 2 條中心線中的每一條(并丟棄混合在數字之間的其他字符,如果有的話)
我想 reg 運算式可能很有用,但我從來沒有真正使用過它們,所以我現在有點掙扎
uj5u.com熱心網友回復:
我會在這里使用 re.findall:
inp = '''first_word 3 5 7 @ 4
second_word 4 5 67| 5 ['''
matches = re.findall(r'\w ', inp)
print(matches) # ['first_word', '3', '5', '7', '4', 'second_word', '4', '5', '67', '5']
如果你想單獨處理每一行,那么只需在 CR?LF 上拆分輸入并使用相同的方法:
inp = '''first_word 3 5 7 @ 4
second_word 4 5 67| 5 ['''
lines = inp.split('\n')
for line in lines:
matches = re.findall(r'\w ', line)
print(matches)
這列印:
['first_word', '3', '5', '7', '4']
['second_word', '4', '5', '67', '5']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/336989.html
