我想只匹配第一个文件路径,它不包含单词缩略图。我使用“not-follow by pattern”但它不起作用。有人可以看看,告诉我我的错误在哪里?这是我的正则表达式:
<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>
答案 0 :(得分:1)
您的正则表达式将匹配文件路径之前不包含“缩略图”的文件路径。您希望阻止它与文本中包含“缩略图” 的那些匹配。
您可以尝试以下方式:
<string>((?!.*Thumbnails).*?\.jpg)</string>
或者:
<string>((?![^<]*Thumbnails)[^<]*\.jpg)</string>
(这将阻止正则表达式引擎在搜索“缩略图”时超过结束“&lt;”。它还将禁止包含“&lt;”的文件路径。)
我认为你将这个与单独的文本行匹配,不对着包含多行的字符串,对吗?
答案 1 :(得分:0)
<string>^((?!Thumbnails).)*$</string>