DB2实现正则表达式(一)

发表于:2007-05-25来源:作者:点击数: 标签:正则表达式实现db2
正则表达式用于查找和替换字符串中的模式。正则表达式是用某种语法定义的,正则表达式引擎采用这种语法并将它与字符串进行比较。引擎返回字符串是否与语法匹配的指示;也即,该字符串是否包含能够从该语法派生的子串。此外,引擎还能够返回匹配的子串。术语


   正则表达式用于查找和替换字符串中的模式。正则表达式是用某种语法定义的,正则表达式引擎采用这种语法并将它与字符串进行比较。引擎返回字符串是否与语法匹配的指示;也即,该字符串是否包含能够从该语法派生的子串。此外,引擎还能够返回匹配的子串。术语“模式(pattern)”用来表示语法。

    | — 二中择一
  [ ] — 分组
  * — 多次出现(也匹配零次出现)
  + — 多次出现(至少一次)
  ? — 随意的出现次数
  \\\\ — 反斜杠

    实现UDF

CREATE FUNCTION Expension1(pattern VARCHAR(2048), string CLOB(10M))
    RETURNS INTEGER
    SPECIFIC regexSimple
    EXTERNAL NAME 'ExpensionUdf!Expension1Simple'
    LANGUAGE C
    PARAMETER STYLE DB2SQL
    DETERMINISTIC
    NOT FENCED
    RETURNS NULL ON NULL INPUT
    NO SQL
    NO EXTERNAL ACTION
    ALLOW PARALLEL;

    实现清单-实例

    SELECT Exp    FROM   strTable
    WHERE Expension1('\\w* = (\\d|0x00);', Exp) = 1


原文转自:http://www.ltesting.net