0

文字列「.php」と一致させようとしていますが、「share」が「.php」の前にない場合のみです。たとえば、「test.php」は検出されますが、「share.php」はスキップされます。

私はこの正規表現を持っていますが、私が思うにうまくいかないようです。私は思います "。" 私を台無しにしているものです。

(?!.*share)\.php

誰でも助けてもらえますか?

4

4 に答える 4

9

あなたの否定的な後読みアサーションは正しく構成されていません。以下は動作するはずです

(?<!share)\.php
于 2013-05-16T17:45:31.713 に答える
2

これらは 100% 確認済みの実用的なソリューションです。

Visual Studio を使用している場合、これを実現するためのコードは次のとおりです。

~(share)\.php

典型的な RegEx (Visual Studio ではなく) を探しているだけの場合は、次のように機能します。

(?<!share)\.php

すべての入力をありがとう!

デニス

于 2013-05-16T19:05:25.703 に答える
0

否定的な先読みを使用しようとしているようです。その場合の正しい正規表現は次のようになります。

^(?!share)[^.]+\.php$

ライブデモ: http://www.rubular.com/r/wFmMH8E2WI

後読みの使用:

^[^.]+(?<!share)\.php$
于 2013-05-16T17:53:28.430 に答える
-2
[^(share)]\.php 

どのようにそのことについて?

grep を使用している場合の代替

ls | grep \.php$ | grep -v share\.php
于 2013-05-16T17:41:45.497 に答える