Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用正则表达式从数组中提取元素?_Python 3.x_Regex - Fatal编程技术网

Python 3.x 如何使用正则表达式从数组中提取元素?

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:

我想从下面列出的数组中提取第一个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: 
    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')(?