要写一个简单的JS正则式, Claude和Gemini都搞不定

 

我要写个脚本把ahref上的DR值和外链个数抓下来, 用AI写个JS脚本 


但是有的时候数字是这种2.9K格式的, 这个2.9K就是抓不出来


<span class="css-vyilnr css-rr08kv-textFontWeight css-oi9nct-textDisplay css-hnrp1e">4.9K</span>

AI又给我一个正则式:  const regex = />(\d+(?:\.\d+)?[KM]?)<\/span>/gi;  但是还是没有匹配到上面的4.9K

我告诉Gemini, 这个解析不出来, 他给我如下解释

这个完全错了, 他找不到正则式规则为什么不对, 就开始说span的其他属性产生的影响,但是这个完全不可能. 我告诉他: 但是那个正则式匹配到了<span class="css-vyilnr css-rr08kv-textFontWeight css-oi9nct-textDisplay css-hnrp1e">34</span>

Gemini给我修改建议:

这个还是无法解析4.9K

我开始还Claude 4.6, 并且问题更明确:

他也无法理解为什么是匹配不到的, 开始怀疑HTML的文本格式

我提示他4.9能匹配, 但是4.9K无法匹配

他给我的解释还是不行.

我放弃了, AI会在这个死胡同继续死磕, 而不会尝试换一种新方法. 我想到了新思路告诉他

用这种逻辑:我先匹配 >xxxx</span> , 再把xxx里面长度大于5的排除, 再把包含除了数字/./K以外的字符的排除

他给我了我能用的代码

const regex = />([^<]+)<\/span>/gi;

const results = [...htmlContent.matchAll(regex)]
    .map(m => m[1].trim())
    .filter(v => v.length <= 5)
    .filter(v => /^[\d.K]+$/.test(v));

console.log(results); // ['34', '4.9K']

终于解决了这个问题

Comments

Popular posts from this blog

Blogger 绑定自定义域名的时候不带www的域名绑定失败, 无法重定向到www域名

2026年3月的苹果商店大卡审事件总结 - App Store 2026 March Review Delay Issue

坑还是很多! Vultr主机上搭建OpenClaw