我有一个数据帧,在一个单元格中有一个长文本,例如:
-学生-凯瑟琳A-/学生-接受abc和-学生-迈克B-/学生-
收到def。你知道吗
我的问题是:如何提取-student-和-/student-之间的文本,并创建两个新列,第一个列中包含“Kathrin A”,第二个列中包含“Mike B”?意思是这个标准在文本中满足两次或多次。你知道吗
到目前为止,我尝试了:结构提取物('-student-\s*([^.]*)\s*-/student-',expand=False)但这只提取第一个匹配,即Kathrin A
非常感谢!你知道吗
Tags:
可以将
str.split
与regex一起使用,并按如下方式定义分隔符:输出:
另一种方法是尝试^{} 。唯一需要注意的是,结果被放入多行而不是多列。有一些重新安排,这应该不是一个问题,请更新这个答复,如果你最终解决了。你知道吗
也就是说,我还对正则表达式做了一点修改,这将有助于捕获这两个表达式。你知道吗
'(?<=-student-)(?:\s*)([\w\s]+)(?= -/student-)'
唯一的捕获组是
[\w\s]+
,因此您一定不会捕获整个字符串。你知道吗相关问题 更多 >
编程相关推荐