【问题标题】:Word boundaries RegEx in TeradataTeradata 中的单词边界正则表达式
【发布时间】:2021-06-09 06:12:39
【问题描述】:

考虑 2 个字符串,我正在尝试查找姓氏 ng 的匹配项,而忽略其他单词,例如 string, working, laughing

t1 = "Strings are fun"
t2 = "Andrew ng is great"

在 Python 中,我可以使用单词边界,例如:

> re.findall('\bnb\b, t1)
> []
> re.findall('\bnb\b, t2)
> ng

我如何在 Teradata 中复制 \b 以便 SELECT REGEXP_SIMILAR(t1, pattern, 'i') 返回0 & SELECT REGEXP_SIMILAR(t2, pattern, 'i') 返回1

【问题讨论】:

    标签: regex teradata


    【解决方案1】:

    Teradata RegEx 基于 PCRE 并支持 \b,但 RegExp_Similar 需要完全匹配,您需要添加 .*

    select 'Andrew ng is great' as s
       ,regexp_similar(s,'.*\bng\b.*')       -- 1
       ,regexp_substr(s,'\bng\b', 1, 1, 'i') -- ng
    
    
    select 'Strings are fun' as s
       ,regexp_similar(s,'.*\bng\b.*')       -- 0
       ,regexp_substr(s,'\bng\b', 1, 1, 'i') -- NULL
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 2018-07-09
      • 1970-01-01
      • 2011-04-14
      • 2011-03-28
      • 2012-09-24
      相关资源
      最近更新 更多