Python 使用相同的条件多次提取文本
我有一个数据框,在一个单元格中有一个长文本,例如: -学生-凯瑟琳A-/学生-接受abc和-学生-迈克B-/学生- 收到def 我的问题是:如何提取-student-和-/student-之间的文本,并创建两个新列,第一个列中有“Kathrin A”,第二个列中有“Mike B”?这意味着该标准在文本中满足两次或多次 到目前为止,我尝试了:str.extract('-student-\s*([^.]*)\s*-/student-',expand=False),但这只提取第一个匹配项,即Kathrin APython 使用相同的条件多次提取文本,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
非常感谢 您可以对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.
另一种方法是尝试。唯一需要注意的是,结果被放入多行而不是多列。通过一些重新安排,这不应该是一个问题,如果你最终解决了这个问题,请更新这个回复 话虽如此,我也对正则表达式做了一点修改,这将有助于捕获这两个表达式
”(?