簡體   English   中英

在Python中從字符串中提取子字符串

[英]Extracting substring from string in Python

我有一個看起來像這樣的字符串:

catString = randomtextrandomtext (cats:1)=1 randomtext randomtextrandomtext (cats:3)=3 randomtext randomtext (cats:1540)=1,540 randomtextrandomtext randomtext (cats:85):85 randomtext

我想打印出一個看起來像這樣的字符串:

(cats:1)(cats:3)(cats:1540)(cats:85)

我試着做:

catCount = ''

for a in catString:
    for b in line.split():
        if '(cats:' in b:
            catCount += str(part)
print catCount

但是,該代碼將輸出:

(cats:1)=1(cats:3)=3(cats:1540)=1,540(cats:85)=85

我怎樣才能達到理想的效果?

import re

''.join(re.findall(r'\(cats:\d*\)', catString))
>>> ''.join(re.findall('\(cats:[0-9]+\)',catString)) 
'(cats:1)(cats:3)(cats:1540)(cats:85)'

嘗試一次

catCount = ''

for a in catString:
    for b in line.split():
        if '(cats:' in b:
            catCount += str(b[0,b.index(")")+1])
print catCount

使用str.index尤其是start參數。

catString = "randomtextrandomtext (cats:1)=1 randomtext randomtextrandomtext (cats:3)=3 randomtext randomtext (cats:1540)=1,540 randomtextrandomtext randomtext (cats:85):85 randomtext"

result = ''
end = -1
try:
    while True:
        start = catString.index('(cats:', end+1)
        end = catString.index(')', start)
        result += catString[start:end+1]

except ValueError:
    pass

print(result)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM