gpt4 book ai didi

replace - 如何在 openrefine GREL 中替换动态正则表达式?

转载 作者:行者123 更新时间:2023-12-04 21:50:44 26 4
gpt4 key购买 nike

我正在尝试以不区分大小写的方式从当前单元格(歌曲名称)中删除单元格“艺术家”的值。我知道 replace() 可以将正则表达式作为参数 ( https://github.com/OpenRefine/OpenRefine/wiki/GREL-String-Functions#replacestring-s-string-f-string-r ),并且我可以使用 (?i) 进行不区分大小写的模式。

但是 replace() 如何知道它的参数是正则表达式还是纯字符串?我见过的所有示例都使用 /.../ 来表示正则表达式,但我需要通过连接单元格 artist 来制作“动态”正则表达式。所以这些不起作用:

 value.replace('(?i)'+cells['artist'].value+,"")
value.replace('((?i)'+cells['artist'].value+')',"")
value.replace('/(?i)'+cells['artist'].value+'/',"")

我更愿意使用 GREL 来执行此操作,但使用 Python/jython 的解决方案也可以。谢谢!

最佳答案

如果你会使用 Python,那么你应该能够做这样的事情:

import re
regex = re.compile('(?i)'+cells['artist'].value)
return regex.sub('', value)

(我还没有检查它是否真的有效!)

关于replace - 如何在 openrefine GREL 中替换动态正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59477511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com