題目:【這是乙個複雜問題的簡化】如下是乙個字串列表,提取字串中第二個數字,並判斷是否大於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...