正则表达式如何匹配不包含固定字符串的子字符串。 TexStudio中的正则表达式:

时间:2014-04-09 14:02:02

标签: regex substring match

我想要一个正则表达式来替换以下字符串

{match1}{matchb}{not}{anotb}

match1matchb{not}{anotb}}

如何编写正则表达式。

基本上我想在{}内找到一个字符串,但该字符串不能包含not

2 个答案:

答案 0 :(得分:3)

搜索正则表达式\{(?![^}]*not)([^}]+)\}

并根据您的正则表达式引擎(或函数)替换为$1\1

正则表达式(?![^}]*not)是一个负向前瞻,即检查not内没有{}

regex101处尝试。

答案 1 :(得分:0)

你可以匹配:

\{([^}]*)\}\{([^}]*)\}\{not\}

并替换为:

\1\2{not}

演示:http://regex101.com/r/uA8rU9