如果前面有另一个特定字符,则拒绝字符

Deny character if preceded by another specific character

我有一个关于 python 的问题,特别是关于正则表达式主题的问题。

假设我有以下规则:

[^$\?\¡]*

也就是说,允许除少数字符以外的所有字符。

我需要向该规则添加类似于以下内容的条件: 仅当一个字符前面有另一个特定字符时才拒绝该字符。

例如,如果 = 字符前面有;

,则不允许使用 = 字符
something;=somethingElse -> something; somethingElse
something=somethingElse -> something=somethingElse

问题是,当我尝试使用方括号内的后视功能时,它无法按预期工作。

[(?<!\;)\=$\?\¡]*

有没有办法写这样的规则?我找了好几个地方都没有找到类似的东西,肯定有,但是在我寻找的过程中什么也没有找到。

字符类 匹配单个字符,不要在其中添加lookbehinds。使用交替:

(?:[^$?¡=]|(?<!;)=)+

参见proof。表达式找到除 $?¡== 之外的一个或多个字符,前面没有分号。