Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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 使用相同的条件多次提取文本_Python_Regex_Pandas_Extract - Fatal编程技术网

Python 使用相同的条件多次提取文本

Python 使用相同的条件多次提取文本,python,regex,pandas,extract,Python,Regex,Pandas,Extract,我有一个数据框,在一个单元格中有一个长文本,例如: -学生-凯瑟琳A-/学生-接受abc和-学生-迈克B-/学生- 收到def 我的问题是:如何提取-student-和-/student-之间的文本,并创建两个新列,第一个列中有“Kathrin A”,第二个列中有“Mike B”?这意味着该标准在文本中满足两次或多次 到目前为止,我尝试了:str.extract('-student-\s*([^.]*)\s*-/student-',expand=False),但这只提取第一个匹配项,即Kathr

我有一个数据框,在一个单元格中有一个长文本,例如:

-学生-凯瑟琳A-/学生-接受abc和-学生-迈克B-/学生- 收到def

我的问题是:如何提取-student-和-/student-之间的文本,并创建两个新列,第一个列中有“Kathrin A”,第二个列中有“Mike B”?这意味着该标准在文本中满足两次或多次

到目前为止,我尝试了:str.extract('-student-\s*([^.]*)\s*-/student-',expand=False),但这只提取第一个匹配项,即Kathrin A


非常感谢

您可以对regex使用
str.split
,并按如下方式定义分隔符:

splittxt = ['-student-','-/student-']
df.text.str.split('|'.join(splittxt), expand=True)
输出:

  0            1                   2         3               4
0     Kathrin A    received abc and    Mike B    received def.

另一种方法是尝试。唯一需要注意的是,结果被放入多行而不是多列。通过一些重新安排,这不应该是一个问题,如果你最终解决了这个问题,请更新这个回复

话虽如此,我也对正则表达式做了一点修改,这将有助于捕获这两个表达式

”(?