首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GREL/OpenRefine中匹配的正则表达式

GREL/OpenRefine中匹配的正则表达式
EN

Stack Overflow用户
提问于 2019-01-26 20:26:29
回答 1查看 1.1K关注 0票数 1

我使用OpenRefine解析具有字符串值的列。我想找到包含以下两种内容的单元格:“提供”或“折扣”。字符串值通常是一个句子。

下面的代码使用的是match函数不起作用。使用value.contains()仅限于搜索一个单词。

value.match(/.*(offer)|(discount)/)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-26 20:48:39

我在文档中看到的是,.match函数尝试将字符串s与正则表达式p完全匹配,并返回捕获组数组。

为了匹配这两种方法中的任何一种,但不是两者兼而有之,如果支持的话,可以使用正的和负的前瞻

要匹配这两个选项中的任何一个,请使用交替确保其中一个单词在那里,另一个单词不在那里,反之亦然:

代码语言:javascript
复制
(?:(?!.*\bdiscount\b).*\boffer\b.*|(?!.*\boffer).*\bdiscount\b.*)

Regex演示

那就匹配了

  • (?:非捕获群
    • (?!.*\bdiscount\b).*\boffer\b.*声称右边没有折扣,并匹配任何字符和报价。
    • |
    • (?!.*\boffer).*\bdiscount\b.*或断言相反

  • )闭非捕获群
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54382417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档