python提取字串中數字

2021-07-04 10:07:29 字數 1283 閱讀 1639

題目:【這是乙個複雜問題的簡化】如下是乙個字串列表,提取字串中第二個數字,並判斷是否大於1000,如果是,從列表中刪除這一行。

1000\t1002\n

.....【省略】....

**:

#coding: utf-8

oldstr = "1000\t1002\n"

newstr = oldstr

#匹配目標數字左側字串

t=newstr.index("\t")

newstr = newstr.lstrip(newstr[0:t])

newstr = newstr.lstrip("\t")

newstr = newstr.rstrip("\n")

if int(newstr)>1000:

print 'ok'

else:

print 'sorry'

#結果:ok
接下來可繼續後續刪除操作。

易錯點1:對字串進行strip()後,如果不賦值,字串內容保持不變。

>>> newstr.lstrip("\t")

'1002\n'

>>> newstr.rstrip("\n")

'\t1002'

再舉一例:

>>> ss="124"

>>> ss[0]

'1'>>> ss.lstrip(ss[0])

'24'

>>> ss[0] #ss[0]保持不變

'1'>>> ss=ss.lstrip(ss[0]) # 賦值之後ss獲取新值

>>> ss

'24'

>>> ss[0] #ss[0]隨之改變

'2'

易錯點2:如果

newstr = newstr.lstrip(newstr[0:t])
結果為"

\t1002",改為newstr[0:t+1]

newstr = newstr.lstrip(newstr[0:t+1])
理論上得到1002,事實上是2.原因strip函式用錯。

解決注釋報錯:如果檔案裡有非ascii字元,需要在第一行或第二行指定編碼宣告:#coding: utf-8

提取 字串中 數字

include include include void main l if find break 有數字則退出迴圈 else printf 沒有數字 請重新輸入 n gets c 沒有則重新出入 l strlen c l strlen c printf 字串長度為 d n l for i 0 i ...

python如何提取字串中的數字

1 使用正規表示式,用法如下 匹配字串的開始。匹配字串的結尾。b 匹配乙個單詞的邊界。d 匹配任意數字。d 匹配任意非數字字元。x?匹配乙個可選的 x 字元 換言之,它匹配 1 次或者 0 次 x 字元 x 匹配0次或者多次 x 字元。x 匹配1次或者多次 x 字元。x 匹配 x 字元,至少 n 次...

PHP提取字串中的數字

php提取字串中的第一組數字 str acc123nmnm4545 if preg match d str,arr php提取字串中的數字的其它方法 第一種方法,使用正規表示式 function findnum str reg d d is 匹配數字的正規表示式 preg match all reg...