如何用正则提取URL编码后myParamName参数的数值?
解决方案
可以使用以下正则表达式提取目标数字值:
(?i)myParamName(?:=|%3D)(\d+)(?:&|$)
正则说明:
(?i):开启大小写不匹配模式,确保myParamName无论大小写形式都能被匹配(?:=|%3D):非捕获组,匹配参数名后的分隔符——原始等号=或URL编码后的等号%3D(因开启了大小写不匹配,%3d也会被匹配)(\d+):捕获组,用于提取连续的数字参数值(这部分就是你需要的结果)(?:&|$):非捕获组,匹配参数分隔符&或字符串结尾,避免误匹配后续其他参数内容
之前正则的问题:
你之前使用的(?i)myParamName(=|%3d)[^&]仅能匹配分隔符后的单个非&字符,无法提取完整的连续数字,且没有设置捕获组来单独获取数字值,所以无法满足需求。
内容的提问来源于stack exchange,提问作者mateoc15
相关产品推荐
相关产品推荐

