如何搜索以下网址,查找{thing}不是我允许的短语的实例?
测试字符串;
https://example.com?good={offer_id}&good2={offer_name}&bad={revenue}&extra=1
{offer_id}和{offer_name}不匹配 {revenue}应该匹配
我想出的最接近的模式是(但没有匹配);
/{(?!(offer_id|offer_name))}/
在线正则表达式测试器:https://regex101.com/r/HwSknv/1
EDIT1:我希望匹配{revenue}(或类似)的每个实例。我打算将它们换掉。
答案 0 :(得分:1)
问题是您匹配}
而未匹配{
之后的任何字符。
您应该使用:
{(?!(?:offer_id|offer_name)})[^}]*}
在匹配[^}]*
之前, }
将匹配任何不是}
的字符中的0个或更多。
答案 1 :(得分:0)
{(?!(offer_id|offer_name)).*?}