所以我輸入進來如下:12_34 5_6_8_2 4_____3 1234
的Python:正則表達式輸出12_34 - 我需要1234
,我從它需要的輸出是:1234, 5682, 43, 1234
我目前正在r'[0-9]+[0-9_]*'.replace('_','')
工作,其中,據我所知,成功拒絕任何不是數字和欠分組合的輸入,其中下劃線不能是第一個字符。
但是,更換_用空字符串會導致12_34出來爲12和34
難道還有比「取代」這個更好的方法?還是我可以修改我的正則表達式來處理這個問題?
編輯:正在回答下面評論中的問題,我意識到它可能更好地指定在這裏。 因此,廣泛的目標是採取長輸入字符串(小例子: 「12_34 +'Iamastring#'I_am_an_Ident」 並返回: ('NUMBER',1234),('PLUS','+'), ('STRING','Iamastring#'),('IDENT','I_am_an_Ident') 我不想經歷所有這些,因爲我已經完全按照規定工作,除以外的號碼 解決方案代碼如下所示: t_PLUS =「+」 t_MINUS =' - '''''''' ' 等,下降到: t_NUMBER = ###代碼去這裏 我不知道如何pu牛逼多行處理成t_NUMBER
您的問題中的代碼對我沒有多大意義,但應用此模式可能會解決您的問題:'([0-9] + _ *)+' – Lucero
請注意,編輯問題時,當你評論他們的答案時,人們不會像他們那樣收到通知。 – lvc
+1 Ivc,這就是爲什麼我現在才發現編輯。最好的方法是編輯問題**和** ping你需要查看的人。 –