问题标签 [re2]

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 回答
1946 浏览

c++ - 使用 RE2 正则表达式库从字符串中删除 html 标签

我需要从字符串中删除 HTML 标签:

当我使用 RE2 库进行模式删除时

当我使用时,Html 标签不会被删除

html标签被删除了,为什么会这样......任何人都可以建议一个更好的正则表达式来从文件中删除HTML标签?

0 投票
2 回答
1216 浏览

regex - RE2 和 UTF16(或 UCS-2)

RE2很棒。快速且确定性。

但是,它仅支持 UTF8。我的字符串本身就是 UTF16,来回转换会降低性能。

在 RE2中实现原生UTF16功能有多难?

在 RE2中实现原生UCS-2功能有多难?(这应该更容易)

即普通程序员需要多少小时才能做到这一点。

这已经困扰了我几个星期,所以我想我会问!

0 投票
1 回答
2019 浏览

python - pyre2 比内置 re 模块慢?

在使用pyre2https://github.com/axiak/pyre2)时,遇到了性能问题(匹配时间)。

我有三个程序:

  1. 使用内置 re 模块的纯 Python:https ://gist.github.com/1873402

  2. 使用 Pyre2 的 Python:https ://gist.github.com/1873402 。(大部分代码与no.1程序相同。除了使用内置re时,它将utf-8字符串解码为unicode,使用pyre2时不需要)

  3. 使用 re2 的 C/C++:https ://gist.github.com/1873417

我测量了两次:正则表达式预编译时间和匹配时间。

  • 1号节目:1.65s 1.25s

  • 2号程序:0.04s 1.8s

  • 3号程序:0.02s 0.8s

它们都由相同的正则表达式和输入提供。(所有正则表达式都支持re2

然后我按照有关 Cython 分析的文档进行操作。得到以下结果:

看起来_search函数 (re2.pyx:393) 占用了太多时间。但我不知道这与纯 C 版本之间有何不同。

PS:Pyre2 修订:提交543f228

re2 修订:变更集:79:0c439a6bd795


我猜实际Match函数(re2.pyx:424)大部分时间都在这个函数中。

然后我将 Match 函数重构为 cdef 函数_my_match,以便我可以在配置文件结果中看到它,还将StringPiece分配重构为 cdef 函数_alloc_sp。(修改细节:https ://gist.github.com/1873993 )重新配置它,然后得到:

但是search仍然占用了很多时间(总共 10.060)。

任何人都可以弄清楚是什么问题?

0 投票
2 回答
216 浏览

c++ - 支持多个不兼容版本的 C++ 库

我编写了一个 Ruby C++ 扩展来包装Google 的 re2 正则表达式库,但最近对该库的更新将函数的接口Match()从:

到:

(注意新的int endpos论点。)

我的问题是:尽管 re2 似乎没有指定任何VERSION我可以自省的常量,我是否有可能在一个扩展中支持这个库的两个版本?

理想情况下,我希望能够尝试较新的版本(带有 6 个参数),如果失败,则回退到旧版本(因为我能够endpos轻松地回填参数)。

目前我的代码是这样的:

但如果你有旧版本的 re2,它需要是:

0 投票
3 回答
637 浏览

c++ - re2 根本不改变字符串

我在第一次尝试使用 re2 时就在此处编写了此代码:

它不起作用;s不会改变并保持空白。我可以将第一行更改string s = "foo";为第二行运行后,s将保持为"foo".

我究竟做错了什么?

0 投票
1 回答
2559 浏览

c++ - 如何使用 RE2 找到匹配字符串的偏移量?

RE2是 Google 提供的现代正则表达式引擎。我想在当前使用 gnuregex 的程序中使用 RE2。我遇到的问题与找出匹配的内容有关。RE2 返回的是匹配的字符串。我需要知道匹配的偏移量。我目前的计划是获取 RE2 返回的内容,然后find在 C++ 字符串上使用 a 。但这似乎很浪费。我已经阅读了 RE2 手册,但不知道该怎么做。有任何想法吗?

0 投票
3 回答
712 浏览

perl - 编译 re::engine::RE2 时出现“错误:非 POD 元素类型的可变长度数组”

我正在尝试re::engine::RE2使用cpan.

构建时,编译器会发出错误消息:

这意味着什么?我该如何解决?我使用的是 2011 Macbook Air 和 Perl 5.12。

0 投票
1 回答
2131 浏览

python - 为什么 re2 结果与 Python 中的 re 模块不同?

我尝试使用re2

结果:

但是re2结果不同

结果:

  1. 为什么每次执行新字符串模式时re2输出数字1 ?
  2. 如何隐藏数字1
  3. 为什么结果与re module(未找到=>返回无)不同?

re2 版本是 0.2.20。Python 是 2.7

谢谢

0 投票
1 回答
908 浏览

regex - 与 pcre 相比,re2 似乎没有为某些模式提供正确的结果

我试图同时使用 pcre 和 re2 并且我想出了以下观察结果。

当我将字符串作为

“A B C D”

和模式为

“^[^c]”

re2 返回 NO MATCH 但它实际上是匹配的。

也就是说,当我输入此内容时,RE2::FullMatch("ab cd", RE2("^[^c]"))我得到 FAIL/No Match。

如果我在某个地方出错或有什么问题,请告诉我?

0 投票
1 回答
776 浏览

regex - 流上的 RE2 正则表达式?

是否可以将 Google RE2 与流一起使用?我们假设使用正则表达式处理的一些输入文字可能太大而无法保存在内存中。