Regex 构建一个以string1开头但不以';t结束于string2

Regex 构建一个以string1开头但不以';t结束于string2,regex,Regex,这是我的测试列表: compiz compizconfig-settings-manager compiz-fusion-bcop compiz-plugins-default compiz-plugins-main-default compizconfig-backend-gconf compiz-corecompiz-gnome compiz-plugins-extra compiz-plugins-main-dev compizconfig-backend-kconfig compiz-d

这是我的测试列表:

compiz
compizconfig-settings-manager
compiz-fusion-bcop
compiz-plugins-default
compiz-plugins-main-default
compizconfig-backend-gconf
compiz-corecompiz-gnome
compiz-plugins-extra
compiz-plugins-main-dev
compizconfig-backend-kconfig
compiz-dev
compiz-plugins
compiz-plugins-main
我是regex noob,正在尝试匹配
compiz-*(?!-dev)

compiz-
开头但不以
-dev
结尾的任何内容

我用它来测试我的字符串,我迷路了

^compiz
仅匹配
compiz
,但后面没有匹配项。我知道
(?!-dev)
应该排除
-dev
的结尾,但是如何告诉它在字符串之后继续

^compiz(!?-dev)
仅匹配
compiz dev


如果!?是否应该说exclude?

您的正则表达式应该如下所示:

^compiz(?!.*-dev$).*

示例:

他说它必须以
compiz-
开头。您缺少了
-
。这也排除了
compiz foo dev bar
,即使它不是以
-dev
@Barmar结尾-我已经编辑了包含
$
(字符串结尾)的模式,因此负前瞻只在字符串结尾匹配。现在我想应该是OP问的问题了,不过他的问题有点让人困惑。。