问题标签 [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.
node.js - 为什么在这个例子中节点的回溯正则表达式比 RE2 快
我需要接受用户的正则表达式——我知道这很疯狂。Google RE2 正则表达式解析器比基于 PCRE 的解析器更安全,因为它不使用回溯,从而防止灾难性回溯、无限循环和一般混乱。据称它通常更快。在我的测试用例中,它只解析一条 syslog 行,它慢了 300% 以上。任何想法为什么?
我在 Ubuntu 上使用 Node v7.7.3。
有问题的代码:
更新:
- 使用节点模块 re2@1.4.1
- 使用 node-re2 包中包含的日期为 2016 年 11 月 30 日的 re2 C++ 代码。
- 我安装了 libre2-dev 软件包版本 20160501+dfsg-1。也许我应该更新 node-re2 下的源代码,或者让它简单地链接到系统库。
regex - scala - 为 RE2 构建一个正则表达式以忽略重音符号
我正在尝试构建一个正则表达式来在 bigquery 中的表中查找一个可以包含重音符号的单词。输入可以有或没有重音。我在 scala 中对其进行编码,因此可以在 scala 中转换输入或使用 bigquery 的函数。我想一个好的解决方案可能是这样的:
我可以将输入转换为
但我认为最好将表格的列转换为:
我不知道如何解决第二种情况,或者是否有更好的方法来解决它。提前致谢
regex - Google表格公式中的多个正则表达式匹配
我正在尝试使用 Google 表格正则表达式公式获取给定字符串中连字符之前的所有数字的列表(比如说在单元格中A1
):
我的问题是它只返回第一个匹配项......我怎样才能获得所有匹配项?
示例文本:
我的公式返回1-
,而我想得到1-2-2-2-2-2-2-2-2-2-3-3-
(作为数组或连接文本)。
我知道可以使用脚本或其他函数(SPLIT
如 REGEX.*
regex101.com上的“ g lobal - 第一次匹配后不返回”选项之类的东西
我还尝试使用 删除不需要的文本REGEXREPLACE
,但也没有成功(我无法删除不位于连字符前面的其他数字)。
任何帮助表示赞赏!谢谢 :)
regex - golang中的正则表达式换行符和空格
我试图将下面的字符串与正则表达式匹配并从中获取一些值。
为此使用了以下正则表达式
现在我的问题是:有更好的方法吗?我明确提到了字符串中的每个新行和空白组。但是我可以说/system.sensor\d\d.*DeviceID=(?P<sensor>.*)\n*.
(它对我不起作用,但我相信应该有办法。)
regex - Google 文档的 Apps 脚本 findText()
我正在将 RegEx 搜索应用于带有一些降价代码块刻度 (```)的Google 文档文本。在我的文档上运行下面的代码会返回一个空结果。
我怀疑我的代码中存在一些RE2不支持的正则表达式元素,但文档并没有说明这一点。有任何想法吗?
regex - 正则表达式一个或多个 vs n+1 匹配
我发现我的 go 项目中的正则表达式替换非常慢,使用 regexp.ReplaceAllLiteralString (re2) 将 \s+ 替换为单个空格。
它显然是为了折叠 SVG 中的空白而放置的,无论这是否是个好主意,当更改为“{2,}”时,操作是十分之一的时间。
虽然使用 \s 与 ' ' 是一个相当大的区别 - 但这是有道理的,它是比较的 5 倍。但是为什么当使用单个空格和 + 时,它比使用 {2,} 慢 9 倍?
regex - 如何删除括号之间的字符串
我试图找到正确的表达式来删除我的 Google 电子表格中的一些字符串。我有很多基于这个模型的细胞:
我想从km2
这个结果中删除所有文本:15.01
。
我试过 LEFT 功能,但它不能基于文本。我想它可以使用 REGEXEXTRACT 来实现。
regex - Datastudio 非计算字段创建
我将 datastudio 与 BigQuery 连接起来。我尝试在 BigQuery 中使用用户函数并在 datastudio 中使用过去的个人查询,但在 datastudioCREATE TEMP FUNCTION
中不支持用户函数 ( )。然后我尝试使用带有类别的新非计算字段,但出现了问题:
错误:无效的公式
ruby - 将 Gitlab 从 9.3.7 更新到 9.3.8 安装 re2 时出错
我们在 Ubuntu 14.04 上运行,Gitlab 9.3.7 运行良好。我们正在尝试更新到 Gitlab v9.3.8 的最新安全补丁,但它给了我们这个错误:
mkmf.log 文件包含:
当我们使用 Ruby 2.3 时,我尝试添加 ruby-dev 和 ruby2.3-dev。更新中没有变化。由于这是一个相当新的补丁,Gitlab 在他们的网站上没有更多信息,re2 的安装说明也没有帮助。