问题标签 [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.

0 投票
2 回答
358 浏览

c++ - 使用 Boost 进行正则表达式标记仅获取单词的最后一个字母

我正在尝试用 Boost 解析一个简单的句子结构。这是我第一次使用 Boost,所以我可能做错了。我想要做的只是接受这种格式的字符串:

  • 必须以字母开头(不区分大小写)
  • 可能含有:
    • 字母字符
    • 数字字符
    • 下划线
    • 连字符
  • 所有其他字符用作分隔符

由于我不知道我的分隔符是什么字符(可能有很多),我试图制作一个对此敏感的正则表达式。唯一的问题是,我只得到每个单词的最后一个字母。这让我相信我的正则表达式是正确的,但我对 boost 的使用却不是。这是我的代码:

我根据我在Boost 网站上找到的内容对此进行了建模。我使用最后一个示例(在页面底部)作为构建 mf 代码的模板。在这种情况下,文本是字符串类型的对象。

我的正则表达式是否正确?我是否正确使用了 boost?

0 投票
2 回答
1798 浏览

c++ - regex_search 和 regex_replace 与 Boost

我正在尝试在一行中由“$”对分隔的一些字符串之间循环,用特定值替换每个匹配项,以便获得替换所有标记的输出行,但我被困在第二个匹配项上'不知道如何连接新的替换值:

问题出在 outLine.append( t.str() ) 中,因为连接没有正确完成,因为在第一次匹配之后,outLine 已经保存了下一次匹配之前的一些字符。

0 投票
2 回答
312 浏览

regex - Boost (1.34) 正则表达式语法错误

我已经阅读了一些文档,并且我更熟悉 VS2010 附带的当前版本。但现在我被 ubuntu 8.04 和 boost 1.34 卡住了,并且遇到了一些奇怪的错误。谁能告诉我做错了什么。这是regex_search boost v1.34的手册页

这是我在代码中所做的:


这是编译错误:

错误:没有匹配函数调用 'regex_search(__gnu_cxx::__normal_iterator, std::allocator > >, __gnu_cxx::__normal_iterator, std::allocator > >, boost::match_results<__gnu_cxx::__normal_iterator, std::allocator > >, std::allocator, std::allocator > > > > >&, boost::regex&, boost::regex_constants::match_flag_type&)'

0 投票
2 回答
960 浏览

c++ - 如何解析 POST 正文 / GET 参数?

所以我需要login=julius&password=zgadnij&otherArg=Value用 N args 解析这样的字符串,每个 arg 都会有一个值。您可以在 POST 请求中找到此类 ti GET 参数。那么如何使用 Boost 为此类字符串创建解析器呢?

0 投票
2 回答
110 浏览

c++ - 使用正则表达式 C++ 进行搜索

我正在使用 Boost.Regex 来实现这样的目标:搜索“|” 然后取“|”的左边部分 并将其放入一个字符串,与右侧部分相同:

在此之后 s1 应该是“谁”,而 s2 应该是“排序”。
如果我没记错的话,它在 Python 中是可行的,我如何在 Boost 中使用正则表达式来做到这一点?

谢谢你。

0 投票
3 回答
10149 浏览

c++ - Getting sub-match_results with boost::regex

Hey, let's say I have this regex: (test[0-9])+

And that I match it against: test1test2test3test0

Now, what[1] will be test0 (the last occurrence). Let's say that I need to get test1, 2 and 3 as well: what should I do?

Note: the real regex is extremely more complex and has to remain one overall match, so changing the example regex to (test[0-9]) won't work.

0 投票
3 回答
32818 浏览

c++ - 带有 Boost Regex 的 C++ 正则表达式

我试图在 C++ 中获取一个字符串并找到其中包含的所有 IP 地址,并将它们放入一个新的向量字符串中。

我已经阅读了很多关于正则表达式的文档,但我似乎无法理解如何执行这个简单的功能。

我相信我可以使用这个 Perl 表达式来查找任何 IP 地址:

但我仍然对如何做剩下的事情感到困惑。

0 投票
2 回答
351 浏览

php - PHP 的正则表达式。搜索单词并返回单词后的数据

我正在尝试为我被要求做的工作制作一个正则表达式,但我没有运气让它足够高效。
目标是使以下内容尽可能高效。
目标编号 1. 使用句子结尾(点、3 个点、感叹号...)分隔所有文本。
目标数字 2 获取出现在字符串 'em' 之后的所有数字 这
是一个可能的小字符串的示例及其正则表达式。(真正的可能真的很笨拙)
正则表达式:旧:
(?:[^.!?:]|...)(?:(?:[^.!?:]|...)*?em (\d+))*
新:
(?:[.!?]|[.][.][.])(?:(?:[^.!?]|[.][.][.])*?\bem\b (\d+))*

适用于字符串(我只是编造的)
(我在开头插入 . )

.Foi visto que a batalha em 1939 foi。Claro que a data que digo ser em 1939 é uma farsa。Em 1938 já(插入 em 1910)não havia reis。

我想要的是制作一个不回溯的正则表达式,因为它根本不需要回溯。通过这样做,我想我可以节省这需要的处理时间……从 30 秒减少到 20 秒甚至 10 秒!就为了这个1,需要1s才能完成。
补充:
谢谢现在的答案,我有一个不会失败的答案。但它仍然回溯太多。有什么解决办法吗?

添加(回答一个已删除的问题):
不幸的是我没有样本数据,谁让我这样做说他也没有样本数据,这仍然需要“到昨天”完成。如果你给我一些尽可能高效地处理这个文本的东西,我确信我可以使用它并且隐蔽,如果需要针对这项工作的特定内容。否则我会再在这里问。

0 投票
1 回答
213 浏览

c++ - 使用正则表达式将不同的文本插入另一个文本?

我有两个文本文件。我想从</sup><sup>标签之间的第一个文本中获取文本,并将其插入到{}.

更好的例子(像字典一样)

文字是随机的,但你可以看到我想要的。Perl 是最好的。

所以得到

并将其粘贴到

文本 A 和 B 是按顺序排列的,所以如果我可以</sup>text<sup>先从文本 A 中读取,将其保存在 temp 中,从文本 A 中删除这一行,将其放在{}文本 B 的第一个空闲槽中,然后重新开始,那就太好了。数字将匹配,因为订单已保存。对不起我的英语:) 谢谢!

0 投票
1 回答
700 浏览

c++ - 帮助 boost::regex 修剪

此正则表达式将在换行符处修剪字符串。我希望它只
修剪两端并保留中间的任何换行符。