文字列「.php」と一致させようとしていますが、「share」が「.php」の前にない場合のみです。たとえば、「test.php」は検出されますが、「share.php」はスキップされます。
私はこの正規表現を持っていますが、私が思うにうまくいかないようです。私は思います "。" 私を台無しにしているものです。
(?!.*share)\.php
誰でも助けてもらえますか?
文字列「.php」と一致させようとしていますが、「share」が「.php」の前にない場合のみです。たとえば、「test.php」は検出されますが、「share.php」はスキップされます。
私はこの正規表現を持っていますが、私が思うにうまくいかないようです。私は思います "。" 私を台無しにしているものです。
(?!.*share)\.php
誰でも助けてもらえますか?
あなたの否定的な後読みアサーションは正しく構成されていません。以下は動作するはずです
(?<!share)\.php
これらは 100% 確認済みの実用的なソリューションです。
Visual Studio を使用している場合、これを実現するためのコードは次のとおりです。
~(share)\.php
典型的な RegEx (Visual Studio ではなく) を探しているだけの場合は、次のように機能します。
(?<!share)\.php
すべての入力をありがとう!
デニス
否定的な先読みを使用しようとしているようです。その場合の正しい正規表現は次のようになります。
^(?!share)[^.]+\.php$
後読みの使用:
^[^.]+(?<!share)\.php$
[^(share)]\.php
どのようにそのことについて?
grep を使用している場合の代替
ls | grep \.php$ | grep -v share\.php