删除 OpenRefine 中大文本中某些行字符前的所有内容
Delete everything before a character on certain lines in a large text in OpenRefine
我环顾四周,但没有找到答案。
我正在 OpenRefine 中清理大量文本。我正在尝试做的是抑制包含 specific 字符的行(\n)两端之间的行,在本例中为 %。看起来像这样:
...用三个词来说,里昂的食物到底是什么?\n“舒适、美味、温暖。 » \n \n梭子鱼肉饼和小龙虾酱 %\n额外的吗?\n主厨 Viola 会调制一碗大汤,这个 ci 将在星期六免费分享, 2017 年 2 月 25 日!敬请关注! \nBalmoral 的里昂软木塞是约会对象! \nMontréal en Lumière - section gastronomie\n23 2016 年 2 月至 3 月 11 日\nLE BALMORAL\n514 288-5992
我正在寻找这样的结果(没有粗线):
...用三个词来说,里昂的食物到底是什么?\n“舒适、美味、温暖。 \n \n\nL还有额外的吗?\n主厨 Viola 将烹制一碗大汤,这道 ci 将于 2017 年 2 月 25 日星期六免费分享!敬请关注! \nBalmoral 的里昂软木塞是约会对象! \nMontréal en Lumière - section gastronomie\n23 2016 年 2 月至 3 月 11 日\nLE BALMORAL\n514 288-5992
这在多个文本中有很多实例。
将不胜感激ci。
我不确定“\n”是文字还是 LF 字符的表示形式,但我假设是前者,您可以根据需要调整公式。解决方案包括拆分行、遍历行并过滤包含“%”的行并再次连接行。在“编辑单元格 -> 转换”对话框中使用以下公式:
forEach(value.split('\n'),l,if(l.contains('%'),'',l)).join('\n')
分解:
value.split('\n')
产生分割线数组
forEach(array,l,f)
遍历数组,将每一行分配给变量 l
并应用函数 f
if(l.contains('%'),'',l))
returns 如果 l
包含百分比 ('%') 则为空字符串,否则为原始字符串
array.join('\n')
将过滤后的行重新组合在一起
我环顾四周,但没有找到答案。
我正在 OpenRefine 中清理大量文本。我正在尝试做的是抑制包含 specific 字符的行(\n)两端之间的行,在本例中为 %。看起来像这样:
...用三个词来说,里昂的食物到底是什么?\n“舒适、美味、温暖。 » \n \n梭子鱼肉饼和小龙虾酱 %\n额外的吗?\n主厨 Viola 会调制一碗大汤,这个 ci 将在星期六免费分享, 2017 年 2 月 25 日!敬请关注! \nBalmoral 的里昂软木塞是约会对象! \nMontréal en Lumière - section gastronomie\n23 2016 年 2 月至 3 月 11 日\nLE BALMORAL\n514 288-5992
我正在寻找这样的结果(没有粗线):
...用三个词来说,里昂的食物到底是什么?\n“舒适、美味、温暖。 \n \n\nL还有额外的吗?\n主厨 Viola 将烹制一碗大汤,这道 ci 将于 2017 年 2 月 25 日星期六免费分享!敬请关注! \nBalmoral 的里昂软木塞是约会对象! \nMontréal en Lumière - section gastronomie\n23 2016 年 2 月至 3 月 11 日\nLE BALMORAL\n514 288-5992
这在多个文本中有很多实例。
将不胜感激ci。
我不确定“\n”是文字还是 LF 字符的表示形式,但我假设是前者,您可以根据需要调整公式。解决方案包括拆分行、遍历行并过滤包含“%”的行并再次连接行。在“编辑单元格 -> 转换”对话框中使用以下公式:
forEach(value.split('\n'),l,if(l.contains('%'),'',l)).join('\n')
分解:
value.split('\n')
产生分割线数组forEach(array,l,f)
遍历数组,将每一行分配给变量l
并应用函数f
if(l.contains('%'),'',l))
returns 如果l
包含百分比 ('%') 则为空字符串,否则为原始字符串array.join('\n')
将过滤后的行重新组合在一起