如果前面有另一个特定字符,则拒绝字符
Deny character if preceded by another specific character
我有一个关于 python 的问题,特别是关于正则表达式主题的问题。
假设我有以下规则:
[^$\?\¡]*
也就是说,允许除少数字符以外的所有字符。
我需要向该规则添加类似于以下内容的条件:
仅当一个字符前面有另一个特定字符时才拒绝该字符。
例如,如果 = 字符前面有;
,则不允许使用 = 字符
something;=somethingElse -> something; somethingElse
something=somethingElse -> something=somethingElse
问题是,当我尝试使用方括号内的后视功能时,它无法按预期工作。
[(?<!\;)\=$\?\¡]*
有没有办法写这样的规则?我找了好几个地方都没有找到类似的东西,肯定有,但是在我寻找的过程中什么也没有找到。
字符类 匹配单个字符,不要在其中添加lookbehinds。使用交替:
(?:[^$?¡=]|(?<!;)=)+
参见proof。表达式找到除 $?¡=
或 =
之外的一个或多个字符,前面没有分号。
我有一个关于 python 的问题,特别是关于正则表达式主题的问题。
假设我有以下规则:
[^$\?\¡]*
也就是说,允许除少数字符以外的所有字符。
我需要向该规则添加类似于以下内容的条件: 仅当一个字符前面有另一个特定字符时才拒绝该字符。
例如,如果 = 字符前面有;
,则不允许使用 = 字符something;=somethingElse -> something; somethingElse
something=somethingElse -> something=somethingElse
问题是,当我尝试使用方括号内的后视功能时,它无法按预期工作。
[(?<!\;)\=$\?\¡]*
有没有办法写这样的规则?我找了好几个地方都没有找到类似的东西,肯定有,但是在我寻找的过程中什么也没有找到。
字符类 匹配单个字符,不要在其中添加lookbehinds。使用交替:
(?:[^$?¡=]|(?<!;)=)+
参见proof。表达式找到除 $?¡=
或 =
之外的一个或多个字符,前面没有分号。