正则表达式包含“演示”一词,但不包含“测试演示”

时间:2019-04-08 10:43:34

标签: regex scala

我有一列为col1和col2:

col1             col2          is_demo     is_test_demo
Demo             test demo     true        true
test Demo        test          true        true  
project Demo     demo          true        false
app demo         test          true        false

我用2个正则表达式创建了2列,它们同时在col1或col2-中搜索is_demo(带有(?)Demo 术语)和is_test_demo(带有(?i)test演示)词)

所需结果:

col1             col2
Demo             test demo   
project Demo     demo
app demo         test

基本上我只想仅删除那些只有测试演示的数据 任何人都可以建议我在哪里错了,以及如何获得结果

代码尝试: 添加了2个正则表达式列-

is_demo-

col1.like("(?i)demo") or col2.like("(?i)demo")

is_test_demo-

col1.like("(?i)test demo") or col2.like("(?i)test demo")

,我正在尝试is_demo和not(is_test_demo) 但它不起作用。

任何人都可以帮助我获取包含的正则表达式     无论其演示在哪里,而不是(测试演示)

1 个答案:

答案 0 :(得分:1)

如果您想使用正则表达式,我认为您可以使用rlike。要匹配演示,但如果字符串包含test_demo则不匹配,则可以使用负前行(?!断言右边的内容不是测试单词边界之间的演示,以防止成为较大单词的一部分:

(?i)^(?!.*Test Demo).*\bdemo\b.*$

Regex demo