我使用OpenRefine解析具有字符串值的列。我想找到包含以下两种内容的单元格:“提供”或“折扣”。字符串值通常是一个句子。
下面的代码使用的是match函数不起作用。使用value.contains()仅限于搜索一个单词。
value.match(/.*(offer)|(discount)/)
发布于 2019-01-26 20:48:39
我在文档中看到的是,.match函数尝试将字符串s与正则表达式p完全匹配,并返回捕获组数组。
为了匹配这两种方法中的任何一种,但不是两者兼而有之,如果支持的话,可以使用正的和负的前瞻。
要匹配这两个选项中的任何一个,请使用交替确保其中一个单词在那里,另一个单词不在那里,反之亦然:
(?:(?!.*\bdiscount\b).*\boffer\b.*|(?!.*\boffer).*\bdiscount\b.*)那就匹配了
(?:非捕获群(?!.*\bdiscount\b).*\boffer\b.*声称右边没有折扣,并匹配任何字符和报价。|或(?!.*\boffer).*\bdiscount\b.*或断言相反
)闭非捕获群https://stackoverflow.com/questions/54382417
复制相似问题