对于字符串:.test[?(@.foo=="bazz")].boo,使用Python,我想根据.,[?,]来获得这个字符串的匹配,但忽略@.。我已经设法弄清楚如何匹配所有分割的模式,但似乎不能弄清楚忽略规则。\[\?\(|\.|]目前为止,我对忽略规则的最好尝试是:^((?!@\.).)*$|\[\?\(|\.|]突出显示的子字符串匹配的预期结果:.测试[?(@.foo==“bazz”)] . boo
.test[?(@.foo=="bazz")].boo
.
[?
]
@.
\[\?\(|\.|]
^((?!@\.).)*$|\[\?\(|\.|]
wgeznvg71#
您的模式^((?!@\.).)*$|\[\?\(|\.|]使用了4个备选项,其中^((?!@\.).)*$部分匹配不包含@.的行如果你想匹配一个没有@字符的点,你可以使用一个简化的模式,使用3个替代方案:
^((?!@\.).)*$
@
\[\?|\]|(?<!@)\.
\[\?
|
(?<!@)\.
参见regex demo。
1条答案
按热度按时间wgeznvg71#
您的模式
^((?!@\.).)*$|\[\?\(|\.|]
使用了4个备选项,其中^((?!@\.).)*$
部分匹配不包含@.
的行如果你想匹配一个没有
@
字符的点,你可以使用一个简化的模式,使用3个替代方案:\[\?
匹配[?
|
或]
匹配]
字符|
或(?<!@)\.
匹配一个点,使用负向后查找声明它前面没有@
字符参见regex demo。