我是 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>
我怎樣才能得到我需要的資料?
uj5u.com熱心網友回復:
您的代碼有兩個問題:
- 您需要使用非貪婪捕獲組,由 using 指定
?。 - 您應該使用
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)
uj5u.com熱心網友回復:
您可以使用 .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']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/435684.html
下一篇:從字串中取出括號中的文本
