2016-11-04 581 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

    相關問題