正则表达式,用于匹配字符串,直到第一次出现定界符

时间:2019-05-08 15:22:03

标签: regex string regex-negation regex-greedy

我有一个字符串,我需要匹配一个模式并在模式匹配后第一次出现定界符后丢弃字符串的其余部分

样本字符串:

  

_fw_xx_app_id = xxxxx&adobe_id = 59742375247590810332565440942222920249&krux_user = yyyyyyy&User_Agent = zzzzzz&_fw_did_idfa = aaaaaaa&_fw_dpr = 2.00&_fw_ae = 3%3%{3} {3c}}

我只想提取键'_fw_ae ='之后的值,直到第一次出现&

我尝试过

regexp_substr(all_request_kv,'_fw_ae=(.+?)&|$',1,1,'e')

但这会将所有内容带到_fw_ae =之后 像下面一样

  

_fw_ae =未经身份验证的&_fwu%3A386123%3Atqxqle5of = 1&_fwu%3A386123%3Atshc3wdb8 = 1   在此示例中,我只希望未经身份验证的地方

1 个答案:

答案 0 :(得分:2)

您可以使用否定的字符类[^&]而不是捕获组中的&来代替非贪婪的量词:

_fw_ae=([^&]+)

Regex demo