[英]How to get specific data from a string using pattern
我是 python 的新手,我有這個字符串:
row = <aa>hello</aa><bb>bello</bb><aa>great</aa><cc>today</cc><aa>later</aa><bb>fine</bb>
我需要獲取 aa 中的所有數據:
hello,great,later
我的代碼是:
allAA =[]
patternAA = "<aa>(.*)</aa>"
allAA = '\''+(re.search(patternAA, str(row))).groups() +'\','
我得到這個結果 = <aa>hello</aa><bb>bello</bb><aa>great</aa><cc>today</cc><aa>later</aa>
我怎樣才能得到我需要的數據?
您可以使用 a.findall() 方法列出您的正則表達式的所有匹配項
import re
row = "<aa>hello</aa><bb>bello</bb><aa>great</aa><cc>today</cc><aa>later</aa><bb>fine</bb>"
allAA = re.findall(r'<aa>(.*?)</aa>', row)
print(allAA) # ['hello', 'great', 'later']
您的代碼有兩個問題:
?
.re.findall()
來獲取捕獲的組,而不是re.search()
。通過這兩個修復,我們得到以下信息:
import re
row = "<aa>hello</aa><bb>bello</bb><aa>great</aa><cc>today</cc><aa>later</aa><bb>fine</bb>"
patternAA = re.compile(r"<aa>(.*?)</aa>")
result = re.findall(patternAA, row)
# Prints ['hello', 'great', 'later']
print(result)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.