问题标签 [boost-regex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 提升正则表达式格式化程序,如何使用自定义函数
那么在调用 boost::regex_replace 时如何调用自定义格式化函数?
我的代码如下:
但是它显示一个错误,“无法推断 __fmt 的模板参数”。- 那么 T 实际上是什么?
c++ - 如何使用 AND 运算符编写正则表达式?
我有来自我的用户的定义字符串来匹配输入字符串,我想简化定义字符串,这样我的用户就不需要知道内部的正则表达式。
我的想法是允许*/-7721/-7722/-7723
匹配任何给定的 4 位字符串,即not 7721 AND not 7722 AND not 7723
.
我正在寻找一个正则表达式来对一个 4 位数字的输入字符串执行上述操作。
我尝试过使用该?!
符号,但它不能与整个字符串不匹配。
(?![0-9]{4})
- 这不允许任何 4 位字符串。
((?!(7721))(?!(7722))(?!(77223))
- 这也没有用
是否有 AND 运算符来执行上述操作?
谢谢,
regex - 需要有关为电子邮件 ID 匹配创建正则表达式的帮助
我对正则表达式很陌生,需要帮助。
如果发件人中有任何电子邮件 ID,我正在寻找一个仅当在邮件标题中找到 3 个电子邮件 ID(比如说 a@gmail.com、b@gmail.com 和 c@rediffmail.com)时才匹配的正则表达式标题那么它不应该匹配。
是否可以创建这种正则表达式?如果是,请告知。
问候, Goldy baharja@goldytips.info
c++ - 我的最后一个正则表达式不起作用,但我无法弄清楚原因
我有两个向量,一个包含我的正则表达式,一个包含将根据正则表达式检查的字符串,其中大多数都可以正常工作,除了这个(如下所示)字符串是正确的字符串并且与正则匹配表达式,但它输出不正确而不是正确。
输入字符串
代码如下
st[split_id] = "国际航空运输协会"
splitMask[split_id] = "[a-zA-Z]{1,15}" <---
但它仍然输出公司名称的格式不正确
我不明白为什么它应该正确时打印不正确,有人可以在这里帮助我吗?
c++ - 使用 boost::regex 删除 C/C++ 样式注释
我正在尝试使用正则表达式从字符串中删除 C 和 C++ 样式的注释。我为 Perl 找到了一个似乎两者兼而有之的方法:
s#/\*[^*]*\*+([^/*][^*]*\*+)*/|//([^\\]|[^\n][\n]?)*?\n|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#defined $3 ? $3 : ""#gse;
但我不确定如何将它与boost::regex
代码块一起使用,或者我需要做什么才能将其转换为boost::regex
.
仅供参考:我在这里找到了正则表达式:perlfaq6,它似乎涵盖了我需要的任何情况。
我不希望使用boost::spirit::qi
它来执行此操作,因为它会为项目的编译增加大量时间。
编辑:
因此,较短的正则表达式确实有效,但较长的则无效。
c++ - 当我尝试从 boost::regex_match(text, e) 捕获异常时,为什么会得到核心转储?
以下示例来自教程。当我运行它时,它会抛出异常,然后是 coredump。我尝试使用 catch() 来捕获异常以避免 coredump,如下所示:
但它不起作用。有什么建议么?
谢谢
-托德
----核心转储消息开始---
在抛出一个实例后调用终止
'boost::exception_detail::clone_impl >'
what():重复运算符“ ”不能启动正则表达式。解析正则表达式时发生错误:'>>>HERE>>> '。
中止(核心转储)
- - 结尾 - -
--- 程序开始 ----
- - 结尾 -
c++ - 使用链接为静态的 boost::regex 编译我的项目
我在我的 VC2011 项目中使用 Boost.Regex,最新的 Boost.Regex 被编译为静态和动态库。
我已经强制我的 VC 项目链接静态库(boost_regex-vc110-mt-1_49.lib),但是在项目编译并运行后,它会报告:
缺少 boost_regex-vc110-mt-1_49.dll
我用谷歌搜索了类似的问题,有人建议使用/D "BOOST_ALL_NO_LIB"
,我试过了,但没有帮助。
c++ - 获取相同级别的标签?
Boost 抛出异常。
对于正则表达式
如果传入的字符串 (std :: string) 大小超过 140 kb。
我需要在同一级别获取标签。
三串
如何更改提升选项,该正则表达式尝试处理任何大小的字符串并且没有引发异常。或者如何在没有正则表达式的情况下获得相同级别的标签?
c++ - 使用 boost 正则表达式标记文本
我忘记正则表达式的速度比我母亲的生日快。这是一个主要的 PITA。无论如何,我想要一个 RE 来解析 HTTP 响应状态行并正确捕获子元素。我得到了这个工作:
第 4 个捕获组是我大惊小怪的,尤其是对单词进行标记。但我不需要它,所以我的工作完成了。但是,我仍然想知道如何标记一个以 '\0' 结尾的空格分隔的句子,这会导致一个向量/数组被剥离的单词。
我无法让以下片段工作
它不应该匹配"hassan ali syed "
,但应该匹配"hassan ali syed"
,并且捕获组应该输出hassan
ali
syed
(带有换行符),但它输出hassan
syed
syed
(注意,第三个 syed 中的空格<space>syed
。我想捕获组不能处理递归实体?
那么,是否有一种干净的方法可以在 PCRE 语法中指定一个标记化任务,从而产生一个干净的标记向量(没有重复——即,我不希望嵌套组尝试去除空格)。
我知道这不是工作的正确工具,spirit / lexx 或 boost::tokenise 是最好的,而且我知道这不是正确的方法。在.net 中进行屏幕抓取时,我会通过对正文重复应用正则表达式直到它用完标记来在文本正文中找到标记。
c++ - 获取搜索模式的索引
我需要在遍历每个循环时获取找到模式的索引。
我尝试了距离,但出现编译时错误。
获得它的最佳方法是什么?
谢谢