sql >> データベース >  >> RDS >> Oracle

正規表現で先読みを置き換える方法は?

    2つのアプローチがあります。 1つは、考えられるすべての選択肢を処理する単一の式を作成することです。

    ^[a-zA-Z][0-9][a-zA-Z0-9-,._;:]{6,}$
      |
    ^[a-zA-Z][a-zA-Z0-9-,._;:][0-9][a-zA-Z0-9-,._;:]{5,}$
      |
    ^[a-zA-Z][a-zA-Z0-9-,._;:]{2}[0-9][a-zA-Z0-9-,._;:]{4,}$
    

    など。これは組み合わせの悪夢ですが、うまくいくでしょう。

    はるかに簡単なアプローチは、2つの式を使用して同じ文字列を2回検証することです。

    ^[a-zA-Z0-9-,._;:]{8,}$          # check length and permitted characters
    

    および

    <ストライク>

    [a-zA-Z].*[0-9]|[0-9].*[a-zA-Z]  # check required characters
    

    編集:@briandfoyは、必要な各文字を個別に検索する方が効率的であることを正しく指摘しています:

    [a-zA-Z]                         # check for required alpha
    

    および

    [0-9]                            # check for required digit
    


    1. Postgresストアド関数はどのようにテーブルを返すことができますか

    2. PL / SQLで文字列を分割する機能はありますか?

    3. WHERE句のフィールドの順序はMySQLのパフォーマンスに影響しますか?

    4. List<int>をmysqlパラメーターに追加します