PowerShell中使用正则匹配提取href属性值的问题
解决正则提取href引号内内容的问题
问题根源
你当前正则里的.*?惰性匹配没有严格限制匹配边界,容易越过href的闭合引号,把后续title等内容也包含进来;同时日期里的.未转义,会匹配任意字符,可能干扰规则的精准性。
修正方案
根据目标字符串中引号的实际形式,选择对应正则:
情况1:href使用实际双引号(")
用否定字符类替代惰性匹配,精准限定匹配范围,同时转义日期里的点:
קרנות פנסיה[\s\S]{0,200}href="([^"]+)"[\s\S]{0,200}31\.12\.2024
[^"]+:仅匹配非双引号的字符,确保在第一个闭合引号处停止31\.12\.2024:转义.,避免它匹配任意字符,保证日期匹配精准
情况2:href使用HTML实体引号(")
同样用否定字符类锁定匹配边界:
קרנות פנסיה[\s\S]{0,200}href="([^"]+)"[\s\S]{0,200}31\.12\.2024
[^"]+:仅匹配不是"的内容,严格停在href的闭合实体引号处
效果说明
修正后,捕获组Groups[1]会精准提取href引号内的内容,不会包含后续title或其他无关部分。
内容的提问来源于stack exchange,提问作者POL
相关产品推荐
相关产品推荐

