c++ 正则问题

HiChengzi 2018-04-03 03:58:41
请教大家个正则相关的问题,字符串【c:\aaa.exe -t1 -k2 -c5 -fd:\a.txt】,想得到4项
-t1
-k2
-c5
-fd:\a.txt

我用表达式:【-[a-z]{1}.+[[:blank:]]?】,为什么得到的结果是一项
-t1 -k2 -c5 -fd:\a.txt

...全文
604 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
HiChengzi 2018-04-25
  • 打赏
  • 举报
回复
结错了,看串行了,结贴页面没有原来的好了
HiChengzi 2018-04-25
  • 打赏
  • 举报
回复
结贴有点晚了 正确结果之一 【-[a-z].+?\\s】
AlbertS 2018-04-04
  • 打赏
  • 举报
回复
引用 6 楼 HiChengzi 的回复:
[quote=引用 5 楼 shihengzhen101 的回复:]
-[a-z].+?[[:blank:]]
可以吗?

这个不可以,一个都没匹配出来[/quote]

int test_regex_search20()
{
std::string pattern{ "-[\\S]*" }; // url
std::regex re(pattern);

std::string str{ "c:\aaa.exe -t1 -k2 -c5 -fd:\\a.txt" };
std::smatch results;
while (std::regex_search(str, results, re)) {
for (auto x : results)
std::cout << x << " ";
std::cout << std::endl;
str = results.suffix().str();
}

return 0;
}

int main()
{
test_regex_search20();
return 0;
}

试了试这个可以

-[\\S]*


测试结果如下:
HiChengzi 2018-04-04
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
正则表达式速查 正则表达式举例 正则表达式学习 (4页A4纸)http://download.csdn.net/detail/zhao4zhong1/1808549
赵老师风采依旧,这几年每次来csdn都能遇见,荣幸荣幸
HiChengzi 2018-04-04
  • 打赏
  • 举报
回复
引用 3 楼 wanggui2015 的回复:
改成非贪心模式,说错了。
感谢回复,我先查查什么是贪心模式 和 非贪心模式
HiChengzi 2018-04-04
  • 打赏
  • 举报
回复
引用 5 楼 shihengzhen101 的回复:
-[a-z].+?[[:blank:]]
可以吗?
这个不可以,一个都没匹配出来
AlbertS 2018-04-04
  • 打赏
  • 举报
回复
-[a-z].+?[[:blank:]]
可以吗?
wallesyoyo 2018-04-04
  • 打赏
  • 举报
回复
引用 6 楼 HiChengzi 的回复:
[quote=引用 5 楼 shihengzhen101 的回复:]
-[a-z].+?[[:blank:]]
可以吗?
这个不可以,一个都没匹配出来[/quote] 这个跟我2楼的回复一样啊,你确定不行吗?我这边用UE编辑器测试可以匹配出来呀。。
赵4老师 2018-04-03
  • 打赏
  • 举报
回复
正则表达式速查 正则表达式举例 正则表达式学习 (4页A4纸)http://download.csdn.net/detail/zhao4zhong1/1808549
wallesyoyo 2018-04-03
  • 打赏
  • 举报
回复
改成非贪心模式,说错了。
wallesyoyo 2018-04-03
  • 打赏
  • 举报
回复
-[a-z].+?[[:blank:]] 要把.+改成贪心模式啊,不然不就全部匹配了嘛。。
HiChengzi 2018-04-03
  • 打赏
  • 举报
回复
来人啊,一起学习下

64,671

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧