首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >奇怪的bug - std::regex只匹配前两个字符串

奇怪的bug - std::regex只匹配前两个字符串
EN

Stack Overflow用户
提问于 2012-03-19 02:30:05
回答 1查看 442关注 0票数 1

今天我在我的应用程序中遇到了奇怪的bug。我已经测试了大约2个小时,没有找到解决方案。也许你能帮我解决这个问题。所以就是这样:

代码语言:javascript
运行
AI代码解释
复制
#include <iostream>
#include <regex>
#include <vector>

int main()
{
        std::regex reg("rmvb|avi|rm|mp4|256");

        std::vector<std::string> ext{"rmvb", "avi", "rm", "mp4", "256", "null"};

        for (int i = 0; i < 6; i++)
        {
                std::cout << ext[i] << "\t" << std::boolalpha << std::regex_match(ext[i], reg) << std::endl;
        }

        return 0;
}

输出:

代码语言:javascript
运行
AI代码解释
复制
rmvb    true
avi true
rm  false
mp4 false
256 false
null    false

似乎模式在第二个元素之后被丢弃了-无论我选择什么顺序(我试图交换它们,因为我认为数字可能会导致这个错误-但它们不是)。现在我不知道是怎么回事了。

我使用的是gcc 4.6.3 (Debian4.6.3-1)版本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-19 02:34:08

正则表达式库大部分还没有在libstc++中实现(参见status page)。这可能是一个bug,或者仅仅是没有实现它的结果。我建议使用Boost.Regex作为替代。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9764264

复制
相关文章
mongodb 字符串查找匹配中$regex的用法
官网地址:https://docs.mongodb.com/manual/reference/operator/query/regex/#regex-case-insensitive
庞小明
2018/12/10
6.2K0
gcc报错:terminate called after throwing an instance of ‘std::regex_error‘ what(): regex
mkdir build …/./configure make & make install
花狗Fdog
2022/05/09
2.2K0
maven—奇怪的bug「建议收藏」
使用Mavenue构建项目时。需要使用@Aspect、@Before注解,但是一直报错,但时Maven项目中确实导入进
全栈程序员站长
2022/07/01
5280
maven—奇怪的bug「建议收藏」
掌握 Python RegEx:深入探讨模式匹配
正则表达式通常缩写为 regex,是处理文本的有效工具。本质上,它们由一系列建立搜索模式的字符组成。该模式可用于广泛的字符串操作,包括匹配模式、替换文本和分割字符串。
数据科学工厂
2023/08/10
2450
掌握 Python RegEx:深入探讨模式匹配
C:基于GNU regex(regex.h)regexec实现正则表达式多次匹配
GNU regex是GNU提供的跨平台的POSIX 正则表达式库(C语言)。 不算GNU提供的扩展函数,POSIX标准的regex库总共就4个函数regcomp,regerror,regexec,regfree. 我们知道 regexec 不能通过一次调用找到字符串中所有满足匹配条件的字符串位置,所以需要通过步进偏移的方式循环执行regexec才能把字符串中所有满足条件的匹配找出来, 每一次匹配的起始偏移是上一次匹配到的字符串结束偏移。
10km
2021/11/17
2.4K1
移动端一个奇怪的触摸bug
这两天遇到一个很奇怪的bug,在移动端,一个页面里所有的input框都不能点击,我查了一下,里面的没有设置readonly属性,只要页面滚动一下就可以用了,而且,只要我在真机测试的时候,f12开发者模式下,一旦选中这个元素也可以点击了,很奇怪,结果我就去公共样式里排查,home.css。结果定位到了这么一段我很不熟悉的代码片段 /* -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -moz-tap-highlig
windseek
2018/06/21
6790
字符串的匹配算法_多字符串匹配
不要被事物的表面现象所迷惑,这个算法全称:Brute Force,有个拉风的中文名:暴力匹配算法。
全栈程序员站长
2022/09/25
2.2K0
字符串的匹配算法_多字符串匹配
奇奇怪怪的兼容性Bug
项目中遇到需要刷新当前界面,就使用了this.router.go(0),结果ios端不生效,this.router.go(0) 和 window.location.reload() 都是刷新当前页面的方法,Vue 写H5页面时,用 this.router.go(0); 方法刷新当前页面,在苹果手机失效,安卓、pc、开发工具等都可以改用 *window.location.reload()* 问题解决!
kif
2023/02/27
1.2K0
一次奇怪的的bug排查过程
公司对底层基础库进行了重构,线上稳定跑了几天,在查看订单系统的log时,有几条error信息非常的奇怪,
lpxxn
2021/11/30
3850
一次奇怪的的bug排查过程
两个看似奇怪的MySQL语句问题
今天同事给了我一个文件需要更新下CMDB的数据,提供的内容是excel的形式,因为条目比较多,我需要做一些转换,批量修改成对应的SQL语句,因为只有我知道这个逻辑,所以这个转换工作由我来做。 本来看起来很简单的一个问题,结果因为不经意的操作出了两个问题,会牵扯出来两条有趣的SQL问题。 首先excel数据类似下面的形式: TEST1 10.0.0.1 7382 TEST2 10.0.0.2 7388 TEST21 10.0.0.21 7389 所以我需要把内容做一个简单的转换,比如使用awk或者
jeanron100
2018/03/22
1.1K0
两个看似奇怪的MySQL语句问题
BZOJ4503: 两个串(bitset字符串匹配)
就是记录匹配串中每个元素出现的位置,将第\(i\)个位置的bitset右移\(i\)位后与起来
attack
2018/10/11
6070
12.Python使用正则表达式匹配"+"前的字符串
正则表达式就像加减乘除四则运算符一样,可以跨语言使用。编程语言只要涉及字符处理,都会引入功能强大的正则表达式。可以说正则表达式本身就是一套应用于字符串环境的小型编程语言。 举一个小栗子来讲一下Python中正则表达式的用法。
用户4381798
2020/07/30
3.7K0
字符串匹配算法_多字符串匹配
从好后缀的后缀子串中,找一个最长的且和模式串的前缀子串匹配的 {v},滑动至 {v} 对齐
全栈程序员站长
2022/09/25
1.8K0
字符串匹配算法_多字符串匹配
用正则表达式查找提取替换字符串
C++11标准支持正则表达式后,使用正则表达式查找、提取、替换字符串就无需使用第三方开源库。
gaigai
2019/10/21
4.6K0
用正则表达式查找提取替换字符串
捉到 Edge 的渲染 BUG 一只
最近测试同学发现,用 Edge 浏览器,访问问卷的新版设置界面,部分联动锁总是显示异常,该锁的没锁,不该锁的又锁上了。
libo1106
2018/12/25
6610
MongoDB模糊查询($regex查询、正则表达式匹配查询)
这里的 i 就是指最上面语法中的那个 options 的值 i 是其的一个选项,代表忽略大小写的意思。 这里 options 还有以下几个选项供使用:
全栈程序员站长
2022/08/23
13.7K0
Java字符串匹配_正则匹配替换字符串
public static void main(String args[]) {
全栈程序员站长
2022/09/24
2.6K0
[算法系列之十二]字符串匹配之蛮力匹配
字符串匹配是数据库开发和文字处理软件的关键。幸运的是所有现代编程语言和字符串库函数,帮助我们的日常工作。不过理解他们的原理还是比较重要的。
全栈程序员站长
2022/09/24
1.7K0
[算法系列之十二]字符串匹配之蛮力匹配
C++ 与正则表达式
正则表达式可以说是软件开发中最常用的功能之一。本文将以C++语言为例,介绍其中的正则表达式相关知识。
C语言与CPP编程
2021/10/09
2.8K0
字符串匹配
问题描述 试题编号: 201409-3 试题名称: 字符串匹配 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。 输入格式   输入的第一行包含一个字符串S,由大小写英文字母组成。   第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。   第三行包含一个整数n,表示给出的文字的行数。   接下来n行,每行包含一个字符串,字符串由大小写英文字母组成,不含空格和其他字符。 输出格式   输出多行,每行包含一个字符串,按出现的顺序依次给出那些包含了字符串S的行。 样例输入 Hello 1 5 HelloWorld HiHiHelloHiHi GrepIsAGreatTool HELLO HELLOisNOTHello 样例输出 HelloWorld HiHiHelloHiHi HELLOisNOTHello 样例说明   在上面的样例中,第四个字符串虽然也是Hello,但是大小写不正确。如果将输入的第二行改为0,则第四个字符串应该输出。 评测用例规模与约定   1<=n<=100,每个字符串的长度不超过100。
geekfly
2022/05/06
8320

相似问题

std中的Bug::regex?

21

Javascript - regex只捕获前3次匹配。

22

Regex模式只匹配前两次

411

vbs regex:只匹配前两个下划线之间的文本

22

std::regex_replace只替换所有其他匹配?

58
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文