问题标签 [pcre]

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 投票
1 回答
884 浏览

c++ - 在 C/C++ 中存储 PCRE 编译的正则表达式

有没有一种有效的方法将编译的正则表达式(通过 regcomp()、PCRE 编译)存储在二进制文件中,以便稍后我可以从文件中读取并调用 regexec()?

或者只是将已编译的 regex_t 结构转储到文件并在需要时将它们读回的问题?

0 投票
18 回答
12476 浏览

regex - 针对多个正则表达式有效地查询一个字符串

假设我有 10,000 个正则表达式和一个字符串,我想找出字符串是否与其中任何一个匹配并获取所有匹配项。最简单的方法是针对所有正则表达式逐一查询字符串。有没有更快、更有效的方法呢?

编辑:我尝试用 DFA (lex) 代替它这里的问题是它只会给你一个单一的模式。如果我有一个字符串“hello”和模式“[H|h]ello”和“.{0,20}ello”,DFA 只会匹配其中一个,但我希望它们都命中。

0 投票
3 回答
6884 浏览

regex - 用正则表达式匹配时间字符串

我想将字符串中的时间(10.00)与日期和时间(“21.01.08 10.00”)相匹配。我正在使用以下正则表达式:

但这与 21.01.08 和 10.00 中的 21.01 匹配。

我使用 PCRE 作为我的常规表达式引擎。

更新:

对不起,我应该更清楚。数据和时间是较大字符串的一部分。我想从那个字符串中提取时间。

例如:

“21.01.08 从 10.00 开始,图书馆将举行派对” “21.08.08 - 10:00 将举行派对” “21.08.08 你被安排参加.................. 10:00 开始"

这可能吗?

0 投票
5 回答
7328 浏览

php - 正则表达式(在 PHP 中)匹配 & 不是 HTML 实体

这是目标:用 & 替换所有独立的 & 符号。但不能替换那些已经是 HTML 实体(例如  )的一部分。

我想我需要一个 PHP 的正则表达式(最好是 preg_ 函数),它只匹配独立的 & 符号。我只是不知道如何用 preg_replace 做到这一点。

0 投票
2 回答
3647 浏览

php - 正则表达式:匹配除完整标记之外的任何内容

我有以下代码片段,我想在其中提取{foreach}{/foreach}使用正则表达式之间的代码:

我已经有了:

但在那之后我无法匹配任何东西。有什么办法可以匹配任何东西,但 {/foreach} 作为一个整体令牌?请注意,{foreach}{/foreach} 之间的内容也可以包含“{$”标记。

编辑:BaileyP 和 Tomalak 的答案是正确的,但为了简单起见,我选择了 BaileyP 的答案。

0 投票
3 回答
1697 浏览

destructor - 为什么这行代码会出现缓冲区溢出错误?

我只有 1 行代码,这是:

在一个函数里面OnBnClickedButtonGo()。此功能在发布模式下失败,但在调试模式下工作正常。

(我在 Windows XP 上使用 Visual Studio 8。)

错误信息是:

我怀疑它是它的析构函数,它是不可见的和隐含的......但我真的不知道。

PS:我静态链接到 PCRE lib 7.8 版。PS2:不是很相关,但可能会帮助一些无法链接到 PCRE 库的人(我花了几个小时才整理出来):包括#define PCRE_STATIC.

0 投票
2 回答
8193 浏览

php - preg_match_all() [function.preg-match-all]: 未知修饰符 ']'

使用了几种不同的模式,但它们都出现了这个错误——那么有什么问题呢?

我最短的诊断是:

谢谢

0 投票
6 回答
40819 浏览

regex - Unicode 正则表达式;无效的 XML 字符

有效 XML 字符的列表是众所周知的,如规范所定义的那样:

我的问题是,是否可以通过使用 Unicode 通用类别,在不实际硬编码代码点的情况下为此(或其逆)创建 PCRE 正则表达式。逆可能类似于 [\p{Cc}\p{Cs}\p{Cn}],除了不正确地覆盖换行符和制表符并遗漏了一些其他无效字符。

0 投票
5 回答
992 浏览

php - preg_match 在 regexbuddy 中工作,而不是在 php 中

好的,所以我有我创建的这个正则表达式,它在 RegexBuddy 中运行良好,但当我将它加载到 php 中时却不行。下面是一个例子。

使用 RegexBuddy 我可以让它与这个一起工作:

检查点匹配换行符,我添加了不区分大小写的,但它也可以这样工作。

这是php:

所以你可以看到我正在使用 [code][/code],然后一旦我可以提取它,我将在其上运行 htmlentities() 以显示而不是渲染 html 代码。

0 投票
4 回答
22427 浏览

regex - 需要一个正则表达式来匹配不能全为零的可变长度数字字符串

我需要验证表单上的输入。我希望输入是 1 到 19 位之间的数字。输入也可以从零开始。但是,我想验证它们并非全为零。我有一个正则表达式,可以确保输入是数字并且介于 1 到 19 个数字之间。

但我不知道如何检查整个字符串是否全为零。我试过这个

但它在 00000000000000000001 上失败,因为它允许可变数量的零。

如何检查整个字符串不为零?

谢谢。

我正在尝试在 ASP.NET RegularExpressionValidator 中执行此操作,因此我希望使用单个表达式。我还有其他选择,所以如果不能做到这一点,我也不会不走运。