2016-11-04 354 views

回答

1

我来到了以下替换规则(该命令的事项),以最Perl的正则表达式转换为SQL语法:

起初,SQL特殊字符都被转义:

  1. _>\_
  2. %>\%

然后,Perl的特殊字符和字符CLA sses必须被替换。

  • .>_
  • \d>[:digit:]
  • \D>[^[:digit:]]
  • \w>[^[:whitespace:]]
  • \W>[:whitespace:]
  • \s>[:whitespace:]
  • \S>[^[:whitespace:]]
  • 注意:默认Perl的转义字符\用于SIMILAR TO这里。

    请随时通过进一步的可能替代扩展我的答案。

    2

    [我]不需要完全兼容,但至少量词和字符类应该是可转换的。

    你很幸运,你可以使用字符类,?*+{exact_occurrences_number}{min,}{min,max}量词与Firebird SIMILAR TO regex syntax

    唯一的麻烦是Unicode的类别/属性类,你可以只使用POSIX字符类有:

    <predefined class name> ::= ALPHA | UPPER | LOWER | DIGIT
                                                                                                            | ALNUM | SPACE | WHITESPACE

    相关问题