读书人

std:regex库执行情况如何和预计的不一

发布时间: 2013-07-16 22:38:05 作者: rapoo

std::regex库执行情况怎么和预计的不一样?求正则帝
用std::regex分析网页数据,正则我先用工具测试了运行正常,但到了std::regex下死活匹配不到,我用了简单的数据进行测试,还是不行,大家帮忙看看是我写错了么?

源文本:


自己摸索了很长时间,百思不得骑姐啊。。。
[解决办法]
引用:
Quote: 引用:

用 std::regex re("<.*/n(.*)\">"); 呀, 你的第一个字符是 <, 不知道你一开始来个 " 是什么意思, 测试是怎么通过的.

噢,是的,一开始的代码写错了。我查了一下,不应该用regex_match的,因为它要求完全匹配。
应该改用regex_search,只搜索匹配的部分。我后面改用regex_search了。

现在我各种改啊 ,,改成 \"\\./(n.+)(?=\\.html)
想匹配到 n0866_mitsuka_koizumi_tg_j 就行了,但还是匹配到n0866_mitsuka_koizumi_tg_j.html">

我想是不是那个.+ 引发的无限匹配

你的目的究竟是什么? 要提取中间的网址 ./n0866_mitsuka_koizumi_tg_j.html 吧?
用 search 的话正则写成 std::regex re("href=\"([^\"]*)\""); 即可.

读书人网 >C++

热点推荐