0

サムネイルという単語を含まない最初のファイルパスのみを照合したい。「not-followedpattern」を使用していますが、機能しません。誰かが見て、私の間違いはどこにあるのか教えてもらえますか?これが私の正規表現です:

<string>((.*(?!Thumbnails))\.jpg)</string>

文字列

<string>/Volumes/Macintosh HD/Users/username/Pictures/iPhoto Library/Masters/2012/05/14/20120514-105314/IMG_6204.JPG</string>
<string>/Volumes/Macintosh HD/Users/username/Pictures/iPhoto Library/Thumbnails/2012/05/14/20120514-105314/IMG_6204.jpg</string>
4

2 に答える 2

1

正規表現は、ファイル拡張子の直前に「サムネイル」が含まれていないファイルパスと一致します。テキストのどこかに「サムネイル」が含まれているものと一致しないようにする必要があります。

次のようなことを試すことができます:

<string>((?!.*Thumbnails).*?\.jpg)</string>

または:

<string>((?![^<]*Thumbnails)[^<]*\.jpg)</string>

(これにより、「サムネイル」を検索するときに正規表現エンジンが終了「<」を通過するのを防ぐことができます。また、「<」を含むファイルパスも許可されません。)

これは、複数行を含む文字列ではなく、テキストの個々の行と一致していると思いますよね?

于 2012-09-10T16:28:39.287 に答える
0
<string>^((?!Thumbnails).)*$</string>
于 2012-09-10T16:28:42.087 に答える