在OpenRefine

时间:2017-03-16 19:15:36

标签: regex openrefine

我想在使用OpenRefine的单元格中删除某个单词(“am”)之后的所有内容。

我的数据:

  

研讨会im Rahmen des Weiterbildungsprogramms am 02. November 2015

     

2015年11月9日在不来梅的头脑风暴

     

工作坊“Auswählenundbewerten”于2015年11月17日在汉堡

正则表达式的示例:[\n\r].*am\s*([^\n\r]*)

在此处查看此行动:http://rubular.com/r/bBlXOMoos1

有效。我想得到以下结果。

  

Workshop im Rahmen des Weiterbildungsprogramms

     

头脑风暴

     

工作坊“Auswählenundbewerten”

我试过了:value.replace(/[\n\r].*am\s*([^\n\r]*)/, '')

问题不在于正则表达式,如果有必要,我可以在第二步中删除“am”。但我无法让正则表达式与value.replace结合使用。

2 个答案:

答案 0 :(得分:1)

你可以试试Python/Jython吗?

import re
return re.sub(r"am.+","", value)

我认为Python的正则表达式通常比GREL更加一致。但是如果你想使用GREL,这不起作用吗?

value.replace(/\s+am.+/, '')

我觉得你混合了value.match()的语法(要求你匹配单元格中的整个字符串,然后选择你想要的子字符串)和value.replace()(你只能匹配子字符串)你需要)。

答案 1 :(得分:1)

实际上这个问题非常简单,你错过了. *删除了所有尾随的内容,现在你的正则表达式在am之后说0个或更多空格,但是你希望它能在它之后清除其他所有东西......这有效:

value.replace(/\sam.*/,'')

enter image description here