鍍金池/ 問答/Java  Python/ python2.7中如何統(tǒng)計(jì)通過正則表達(dá)式匹配的多個(gè)字符串的數(shù)量?

python2.7中如何統(tǒng)計(jì)通過正則表達(dá)式匹配的多個(gè)字符串的數(shù)量?

clipboard.png

如上圖所示,現(xiàn)有一個(gè)通過linux命令返回的多行字符串,需要切開INCLUDE列下每一行第一個(gè)'CLA',并統(tǒng)計(jì)出所有的行中INCLUDE列下返回的'CLA'(每一行僅限第一個(gè))的總數(shù)量.我的代碼如下:
import re
ss = '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ n| ID | NAME | DESCRIPTION | INCLUDE | ROLLBACK | n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ n| 1481439 | CSS Upgrade Patch | Upgrade CSS to R9A for case | CLA#1481439 | True | n| 1501340 | Artifact CLA#1501340 ZBX Ansi| support ZBX Ansible Module Ex| CLA#1501340v6.1.5 CLA#1499108v6.1.0 | True | n| 1527137 | Artifact CLA#1527137v6.1.2 PR| support CMCC PRMTOOL Feature | CLA#1527137v6.1.2 | True |.........'

for line in ss.split('n')[3:]:

info = line[1:-1].split('|')
a=re.search(r'(.*?)CLA', info[3])
b = a.group()
print b
c = b.count('CLA')
print c

得到結(jié)果如下:
CLA
1
CLA
1
CLA
1
我的問題是:已經(jīng)通過正則匹配到了表中擁有的3個(gè)CLA的字符串,但統(tǒng)計(jì)時(shí)卻只統(tǒng)計(jì)到了3個(gè)1,如何通過代碼達(dá)成總數(shù)為3的返回值呢?謝謝.

回答
編輯回答
疚幼

看到 linux命令返回,我第一感覺就是可以直接通過 命令解決,你可以試下:

xxxx  |  awk -F '|' '$5~/^ *CLA#/{n++}END{print n}'

如果非要用python,直接復(fù)制部分文檔上來吧:

import re
ss = '+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ n| ID | NAME | DESCRIPTION | INCLUDE | ROLLBACK | n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ n| 1481439 | CSS Upgrade Patch | Upgrade CSS to R9A for case | CLA#1481439 | True | n| 1501340 | Artifact CLA#1501340 ZBX Ansi| support ZBX Ansible Module Ex| CLA#1501340v6.1.5 CLA#1499108v6.1.0 | True | n| 1527137 | Artifact CLA#1527137v6.1.2 PR| support CMCC PRMTOOL Feature | CLA#1527137v6.1.2 | True |.........'
print len(re.findall('\| CLA#', ss, re.M))
2018年3月18日 20:08