Python 3.x 如何使用正则表达式从数组中提取元素?
我想从下面列出的数组中提取第一个url。 我想将Python3与正则表达式一起使用,但无法匹配字符串 这就是我试过的Python 3.x 如何使用正则表达式从数组中提取元素?,python-3.x,regex,Python 3.x,Regex,我想从下面列出的数组中提取第一个url。 我想将Python3与正则表达式一起使用,但无法匹配字符串 这就是我试过的 import pandas as pd import re reg = "\['\S*" myDataFrame = pd.read_csv('Refactored_Test_1.csv') imageColumn = myDataFrame.loc[:,"image"] print(imageColumn) for element in imageColumn:
import pandas as pd
import re
reg = "\['\S*"
myDataFrame = pd.read_csv('Refactored_Test_1.csv')
imageColumn = myDataFrame.loc[:,"image"]
print(imageColumn)
for element in imageColumn:
print(element)
['https://ui.assets-asda.com/dm/asdagroceries/8000500217078_T1?defaultImage=asdagroceries/noImage&resMode=sharp2&id=nHnSx1&fmt=jpg&fit=constrain,1&wid=188&hei=188', 'https://ui.assets-asda.com/dm/asdagroceries/8000500217078_T2?defaultImage=asdagroceries/noImage&resMode=sharp2&id=PS8Sl2&fmt=jpg&fit=constrain,1&wid=188&hei=188']
您可以使用一个捕获组,将非空白字符重复1+多次,并匹配后面的
“
\['(\S+)'
如果只需要匹配,可以使用lookarounds:
(?<=\[')\S+(?=')
(?你的意思是\['(\S+)
还是使用lookarounds(?是的,这就是我的意思,要提取它,应该是?imageColumn=imageColumn.str.extract(r'\['(\S+)
像这样,我想你必须跳出引号r'\[\\[\'(\S+)
我得到了“行后意外字符错误”imageColumn=imageColumn.str.extract(r')(?尝试转义两个单引号imageColumn=imageColumn.str.extract(r')(?