Regex OpenRefine:反转正则表达式
我看到了一些关于反转正则表达式的问题,但我无法将这些解决方案应用到OpenRefine并使其工作 例如,假设我有一个邮政编码字段,其中大多数条目都有表单Regex OpenRefine:反转正则表达式,regex,invert,openrefine,Regex,Invert,Openrefine,我看到了一些关于反转正则表达式的问题,但我无法将这些解决方案应用到OpenRefine并使其工作 例如,假设我有一个邮政编码字段,其中大多数条目都有表单 ^\d{5}-\d{4}$ 我想过滤掉所有这些条目,看看使用GREL regex还剩下什么。如何创建一个正则表达式,在Openrefine中查找所有不带上述形式的字符串?您可以使用负环行作为一种方法,在不带某个子字符串的情况下匹配某个字符串。在您的情况下,它将匹配没有5位数字后跟破折号后跟4位数字的所有内容 ^((?!\d{5}-\d{4})
^\d{5}-\d{4}$
我想过滤掉所有这些条目,看看使用GREL regex还剩下什么。如何创建一个正则表达式,在Openrefine中查找所有不带上述形式的字符串?您可以使用负环行作为一种方法,在不带某个子字符串的情况下匹配某个字符串。在您的情况下,它将匹配没有5位数字后跟破折号后跟4位数字的所有内容
^((?!\d{5}-\d{4})。*$
匹配没有特定子字符串的所有内容的另一个解决方法是简单地将该子字符串替换为
”
,然后获取所有条目。您的引擎是否支持负前瞻性?OpenRefine合并了Java.Util.regex,因此我假设它支持负前瞻性。这非常有效!谢谢有没有办法修改它以只返回非空条目(也与模式不匹配)?很高兴它能工作,您可以用+
替换*
,并且还应该忽略所有非空条目。对不起,您可以演示如何使用正则表达式替换吗?这其中有什么错误,即替换(值,^((?!\d{5}-\d{4})。*$,“”)
?