我有这样的判断力
.*js/[\bpackaged\b]+\.js目前,它与下面列表中的“packaged.js”匹配:
我如何将其反转,使其与除“Packaged.js”之外的其他所有其他内容相匹配?
发布于 2011-09-23 14:27:39
kent$ echo " js/foo.js
js/bar.js
js/suitcase.js
js/bootstrap.js
js/packaged.js
"|grep -P '.*js/.*(?<!packaged).js'
js/foo.js
js/bar.js
js/suitcase.js
js/bootstrap.js这个例子只是显示表达式,如果您真的使用grep,-v可以使它更容易。
--根据的评论更新--
注意输入中的最后5行:
kent$ echo " js/foo.js
js/bar.js
js/suitcase.js
js/bootstrap.js
js/packaged.js
js/foo_packaged.js
js/packaged_bar.js
js/foo_packaged_bar.js
js/_packaged.js
js/packaged_.js"|grep -P '.*js/(.+packaged\.js|.+(?<!packaged)\.js)' 产出:
js/foo.js
js/bar.js
js/suitcase.js
js/bootstrap.js
js/foo_packaged.js
js/packaged_bar.js
js/foo_packaged_bar.js
js/_packaged.js
js/packaged_.js发布于 2011-09-23 20:51:14
这做你想做的事:
.*js/(?!packaged\.js).+\.jshttps://stackoverflow.com/questions/7530443
复制相似问题