RegEx模式没有跟着

时间:2012-09-10 16:26:17

标签: regex

我想只匹配第一个文件路径,它不包含单词缩略图。我使用“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>

2 个答案:

答案 0 :(得分:1)

您的正则表达式将匹配文件路径之前不包含“缩略图”的文件路径。您希望阻止它与文本中包含“缩略图” 的那些匹配。

您可以尝试以下方式:

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

或者:

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

(这将阻止正则表达式引擎在搜索“缩略图”时超过结束“&lt;”。它还将禁止包含“&lt;”的文件路径。)

我认为你将这个与单独的文本行匹配,对着包含多行的字符串,对吗?

答案 1 :(得分:0)

<string>^((?!Thumbnails).)*$</string>