Oracle 11g R2 Express Edition(XE)のこのSQLコマンドが期待した結果を返さない理由を知っていますか?Oracle SQL REGEXP_LIKEが予期しない結果を返さない
SELECT 'X'
FROM dual
WHERE REGEXP_LIKE('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)', '^.*MSIE [5-8](?:\.[0-9]+)?(?!.*Trident\/(?:[5-9]|1[0-9])\.0).*$');
私はサイトhttps://regex101.com/は、パターンが一致した使用...
実際に一致するには 'regexp_substr'を使うべきです。 'regexp_like'を使うと、パターンが一致したかどうかを知ることができます。この場合、真であれば 'x'、それ以外の場合には行はありません。 –
Oracle regexエンジンは先読みをサポートしていません。部分文字列を取得しようとしていたら、 'regexp_substr'を使い、' regexp_replace'を使って不要な部分を置き換えることをお勧めします。 'regexp_like'と行をマッチさせるだけであれば、おそらくそれらは必要ありません。 –
あなたの答えをありがとうが、このコマンドは何も返しません。ですから、私にとっては、Oracleが正規表現で認識しないものがあります(2番目の引数)。しかし何? [MSIE 8.0、Windows NT 5.1、Trident/4.0、.NET CLR 2.0.50727、.NET CLR 3.0.4506.2152、.NET CLR 3.5.30729] '、*。* MSIE [ Trident \ /(?:[5-9] | 1 [0-9])\。0)。* $ ')(5-8)(?:\。[0-9] +)デュアルから "REGEXP_SUBSTR"; – Vince