正则表达式查找以'-'开头并以')'结尾但不包含'('

时间:2019-08-13 18:24:54

标签: regex sublimetext3

我正在将字典文本文件转换为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的答案对我来说是完美的。但是我onky需要一个以'-'开头的字符串,因此我需要在Regex的开头添加'^',如注释中的vs97所示。非常感谢大家。

3 个答案:

答案 0 :(得分:1)

您的意思是这样吗?

^-[^()]+\)$

根据评论进行编辑。

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

答案 1 :(得分:1)

您还可以使用负前瞻来解决此问题:

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

enter image description here

Regex Demo。您可以在右上角找到有关正则表达式所有部分的说明。

答案 2 :(得分:0)

请尝试以下操作: \-{1}[^()]*\)

enter image description here