0

我试过 [^A-Za-z0-9] tent[^A-Za-z0-9] .. 有多种组合 ?+*

以及类似 [^|[^A-Za-z0-9] ]tent[[^A-Za-z0-9] |$]

我想匹配:

  • 注意 - 否
  • 看看帐篷 - 是的
  • 帐篷很好 - 是的
  • 一些帐篷的东西 - 是的
  • camping,tent,outdoors - 是(一些非字母数字分隔符)

如果它更容易,像“帐篷”之类的东西也可以是匹配的

我想我从我看过的所有页面中都遗漏了一些东西,但我真的被困在这里。我需要在句子或分隔列表的开头、中间或结尾找到一个搜索词。我需要做多个陈述吗?

我希望可能有一种方法可以说使用这个表达式,但如果它是行首或行尾则不行

4

1 回答 1

3

with \w(非字母数字)

SQL> select str
  2    from (select 'attention' str from dual union all
  3          select 'look at the tent' str from dual union all
  4          select 'tent''s are nice' str from dual union all
  5          select 'something tent something' str from dual union all
  6          select 'camping,tent,outdoors' str from dual)
  7   where REGEXP_LIKE(str, '(\W|^)tent(\W|$)', 'i') ;

STR
------------------------
look at the tent
tent's are nice
something tent something
camping,tent,outdoors

SQL> select str,
  2         case when REGEXP_LIKE(str, '(\W|^)tent(\W|$)', 'i') then 'YES' else 'NO' end matches
  3    from (select 'attention' str from dual union all
  4          select 'look at the tent' str from dual union all
  5          select 'tent''s are nice' str from dual union all
  6          select 'something tent something' str from dual union all
  7          select 'tent' str from dual union all
  8          select 'camping,tent,outdoors' str from dual);

STR                      MAT
------------------------ ---
attention                NO
look at the tent         YES
tent's are nice          YES
something tent something YES
tent                     YES
camping,tent,outdoors    YES
于 2013-02-05T17:21:21.927 回答