这让我疯了。我正在尝试匹配.js
中未结束的所有内容。我正在使用perl
,因此?<!
等非常受欢迎。
mainfile
jquery.1.1.11
my.module
mainfile.js
jquery.1.1.11.js
my.module.js
这应该是一个非常简单的任务,但我只是卡住了。我查看了regex
,sed
,perl
的文档,甚至在regexr上摆弄了半个小时。直觉上,this example(/^.*?(?!\.js)$/
)应该这样做。我猜我只是瞎了眼。
提前致谢。
答案 0 :(得分:9)
答案 1 :(得分:1)
当您只有负匹配条件时,最简单的方法是构造正正则表达式,然后检查它是否匹配。
if ($string !~ /\.js$/)
{
print "Doesn't end in .js";
}
这比负面的环顾更容易理解和更有效。
只有当您需要混合正面和负面条件时才需要环顾四周(例如,&#34;我需要匹配&#34; foo&#34;在一个字符串中,但仅在不遵循时by&#34; bar&#34;)。即便如此,有时候使用多个简单的模式和逻辑会更容易,而不是用一个复杂的模式满足所有需求。
答案 2 :(得分:0)
这个应该符合您的需求:
^.*(?<![.]js)$