删除 OpenRefine 中某个单词后的所有内容
Remove everything after a certain word in OpenRefine
我想用 OpenRefine 删除单元格中特定单词 ("am") 后的所有内容。
我的数据:
Workshop im Rahmen des Weiterbildungsprogramms am 02. November 2015
Brainstorming am 09. November 2015 in Bremen
Workshop "Auswählen und bewerten" am 17. November 2015 in Hamburg
正则表达式示例:[\n\r].*am\s*([^\n\r]*)
在此处查看实际效果:http://rubular.com/r/bBlXOMoos1
行得通。我想要以下结果。
Workshop im Rahmen des Weiterbildungsprogramms
Brainstorming
Workshop "Auswählen und bewerten"
我试过了:value.replace(/[\n\r].*am\s*([^\n\r]*)/, '')
问题不在于正则表达式,如有必要,我可以在第二步中删除 "am"。但我无法让正则表达式与 value.replace.
结合使用
你能用 Python/Jython
试试这个吗?
import re
return re.sub(r"am.+","", value)
我认为 Python 的正则表达式通常比 GREL 的更一致。但是如果你想用GREL,这样不行吗?
value.replace(/\s+am.+/, '')
我觉得你混合了 value.match()
的语法(这要求你匹配单元格中的整个字符串,然后 select 你想要的子字符串)和 value.replace()
(其中你只能匹配你需要的子串)。
问题实际上很简单,您在 *
之前缺少 .
以删除所有尾随内容,现在您的正则表达式表示 [=13 之后有 0 个或更多空格=],但你希望它在它之后清除所有其他内容......这有效:
value.replace(/\sam.*/,'')
我想用 OpenRefine 删除单元格中特定单词 ("am") 后的所有内容。
我的数据:
Workshop im Rahmen des Weiterbildungsprogramms am 02. November 2015
Brainstorming am 09. November 2015 in Bremen
Workshop "Auswählen und bewerten" am 17. November 2015 in Hamburg
正则表达式示例:[\n\r].*am\s*([^\n\r]*)
在此处查看实际效果:http://rubular.com/r/bBlXOMoos1
行得通。我想要以下结果。
Workshop im Rahmen des Weiterbildungsprogramms
Brainstorming
Workshop "Auswählen und bewerten"
我试过了:value.replace(/[\n\r].*am\s*([^\n\r]*)/, '')
问题不在于正则表达式,如有必要,我可以在第二步中删除 "am"。但我无法让正则表达式与 value.replace.
结合使用你能用 Python/Jython
试试这个吗?
import re
return re.sub(r"am.+","", value)
我认为 Python 的正则表达式通常比 GREL 的更一致。但是如果你想用GREL,这样不行吗?
value.replace(/\s+am.+/, '')
我觉得你混合了 value.match()
的语法(这要求你匹配单元格中的整个字符串,然后 select 你想要的子字符串)和 value.replace()
(其中你只能匹配你需要的子串)。
问题实际上很简单,您在 *
之前缺少 .
以删除所有尾随内容,现在您的正则表达式表示 [=13 之后有 0 个或更多空格=],但你希望它在它之后清除所有其他内容......这有效:
value.replace(/\sam.*/,'')