0

我只想匹配不包含单词缩略图的第一个文件路径。我使用“不遵循模式”,但它不起作用。有人可以看看并告诉我我的错误在哪里吗?这是我的正则表达式:

<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 回答