正则表达式查找以“-”开头并以“)”结尾但不包含“(”的字符串

Regex to find a string that star with '-' and end with ')' that not contain '('

我正在将字典文本文件转换为 JSON。我想通过Sublime text 3搜索删除字典文件中的一些字符串。

例如:

@addle-head /'ædlhed/ (addle-pate) /'ædlpeit/
-pate) 
/'ædlpeit/
*  danh từ
- người đầu óc lẫn quẫn

我想查找并删除字符串“-pate)”。

我在 google 不包含字符串正则表达式和 AND 运算符正则表达式之后尝试了此代码:

/^-((?!\().)*$/gm

但它只能找到以'-'开头且不包含'('的字符串。

我希望正则表达式也能找到带有 ')' 的字符串。

更新: MonkeyZeus 的答案对我来说是完美的。但是我只需要一个以 '-' 开头的字符串,所以我需要将 '^' 添加到 Regex 的开头,就像 vs97 在评论中所说的那样。非常感谢大家。

你的意思是这样?

^-[^()]+\)$

根据评论进行了编辑。

https://regex101.com/r/oGZ20d/6

您也可以使用 Negative Lookahead 来解决这个问题:

^-(?!\().+\)$

Regex Demo。您可以在右上角找到对正则表达式所有部分的解释。

请试试这个: \-{1}[^()]*\)