提取以數字開頭的所有行的正則表達式是什麼?查找以數字開頭的所有行
我知道^
字符是用來匹配行的開頭的任何東西,但我沒有構建它是正確的。
這是我曾嘗試:
re.findall('^[0-9]+',mystring).
提取以數字開頭的所有行的正則表達式是什麼?查找以數字開頭的所有行
我知道^
字符是用來匹配行的開頭的任何東西,但我沒有構建它是正確的。
這是我曾嘗試:
re.findall('^[0-9]+',mystring).
我猜你想匹配整個行,但它只是匹配的起始編號。您需要包含貪婪通配符以及多行參數以告訴它您想要搜索多行。嘗試:
re.findall('^[0-9].*', mystring, re.MULTILINE)
在[0-9]'之後使用'+'沒有意義。即使沒有它,它也會工作。 –
你是對的。我只是複製了這個問題的代碼,並且修復了這個問題,而沒有仔細查看。 – gowrath
你忘了re.MULTILINE
改性劑和.*
[0-9]
後,該行的其餘部分相匹配。如果你是使用正則表達式,你可以使用r"(?m)^[0-9].*"
。但是,這不是最好的方法。用\ n拆分並遍歷行,檢查第一個字符是否是數字。
這裏是我建議:
with open('file', 'r') as f:
for line in f:
if len(line) > 0 and line[0].isdigit():
print(line)
你的意思是如果len(line)> 0和line [0] .isdigit()正確嗎?你的解決方案導致索引超出範圍 –
@PrashantBhanarkar是的,它應該是'len(line)> 0',而不是'line [0]'。 –
對不起,我讓孩子們睡覺....修復。 –
所以發生了什麼事?你的輸入是什麼,你的輸出是什麼,你試圖解決什麼問題,... – UnholySheep
你忘記了'MULTILINE'修飾符和'。*'以匹配其餘的行。但是,這不是最好的方法。用'\ n'分割並遍歷這些行,檢查第一個字符是否是數字。見http://ideone.com/dO4AYB –
^^是。這正是我所要做的。 – idjaw