问题标签 [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 投票
2 回答
212 浏览

php - 这些正则表达式模式匹配什么?

我是 PHP 中正则表达式的新手,并且了解基本模式,但是下面的模式有点复杂,我不明白以下模式匹配什么:

有人可以解释一下吗?

谢谢。

0 投票
1 回答
3432 浏览

regex - 在 perl 风格的正则表达式中匹配字符串的其余部分

如何在 perl 风格的正则表达式(PCRE)中匹配“已知部分(未知单词)(字符串的其余部分)”的内容?

0 投票
4 回答
1271 浏览

regex - 用于解析请求参数的正则表达式

我正在寻找一个可以解析以下形式的字符串的 perl 兼容正则表达式:

参数 1=值 1&...&参数 2=值 2&...

并仅提取 param1 和 param2 的值。但

  1. param2 可能在 param1 之前
  2. 可能没有 param1 或 param2
  3. param1 或 param2(或两者)可能有空值,即 param1=&...
0 投票
2 回答
648 浏览

c++ - 将 PCRE 正则表达式中的任意数量的单词匹配为字符串

我正在使用 PCRE 进行一些正则表达式解析,我需要在字符串中搜索特定模式中的单词(假设一串单词中的所有单词用逗号分隔)并将它们放入字符串向量中。

我该怎么做呢?

0 投票
2 回答
39486 浏览

php - 正则表达式中的波浪号运算符

我想知道正则表达式中波浪号运算符的含义是什么。

我有这样的声明:

我发现这个文档解释了波浪号的含义:~

它说这=~是一个 perl 运算符,表示针对这个正则表达式运行这个变量。

但是为什么我的正则表达式包含两个波浪号运算符?

0 投票
2 回答
478 浏览

c++ - PCRE中的匹配顺序

如何设置匹配 PCRE 正则表达式中的内容的顺序?

我有一个用户可以提供的动态正则表达式,用于从字符串中提取两个值并将它们存储在两个字符串中。但是,在某些情况下,这两个值可以以相反的顺序出现在字符串中,因此第一个 (\w+) 或任何需要存储在第二个字符串中的值。

0 投票
5 回答
121202 浏览

regex - 使用正则表达式反转匹配

使用 PCRE,如何构造一个仅在找不到字符串时才匹配的表达式。

如果我使用的是 grep (我不是),我会想要 -v 选项。

一个更具体的例子:我希望我的正则表达式匹配 iff 字符串foo不在字符串中。所以它会匹配barwould 但不匹配foobar

0 投票
3 回答
3402 浏览

php - 是否有将 POSIX 转换为 PHP 的 PCRE 的实用程序?

是否有将 POSIX 转换为 PHP 的 PCRE 的实用程序?我对 PCRE 的 PHP 手册有些困惑,虽然我会尝试查找有关 PCRE 的更多信息,但我想知道是否有人设计了这样的实用程序。

或者,如果有人能解释如何转换以下内容,那也可以:

但请解释它是如何完成的,而不仅仅是告诉我转换。

0 投票
6 回答
1452 浏览

c - IIRF 中的堆栈溢出(C 程序,ISAPI)

我正在使用IIRF——一个用于漂亮 URL 的 ISAPI 重写过滤器。在这些问题上,我无法从开发人员那里获得太多帮助。我希望通过对这个转储有所了解,这样我就可以在代码中找到有问题的区域并自己重建它。我对C不是超级熟悉,但可以解决。我是否需要使用调试符号构建它才能从转储中获取任何有用的信息?

这些堆栈溢出异常发生在我们的实时生产 Web 服务器上,因此我无法使用调试模式来单步执行此代码。发生的事情是我的应用程序池进程 (w3wp.exe) 收到此错误事件:

为应用程序池“dotNET 池”提供服务的进程与万维网发布服务发生了致命的通信错误。进程 ID 为“6924”。数据字段包含错误号。

有人可以帮我理解这些数据吗?它是来自 IIS 调试诊断工具的转储。我如何解释它并找到异常的来源?它似乎是第 3 方 PCRE 正则表达式库中的一个例外。

WARNING - DebugDiag was not able to locate debug symbols for IsapiRewrite4.dll, so the information below may be incomplete.

In w3wp__PID__3760__Date__06_23_2009__ Time_01_29_55PM__916__Second_Chance_Exception_C00000FD.dmp the assembly instruction at IsapiRewrite4!pcre_exec+12f9 in C:\IIRF1.2.15R5\IsapiRewrite4.dll has caused a stack overflow exception (0xC00000FD) when trying to write to memory location 0x00fc2be8 on thread 5


更新此调试过程

我相信我找到了罪魁祸首,在调整 IIS 调试诊断工具以提供更多信息后,我发现 URL 如下所示。它似乎类似于 SQL 注入攻击,但我不认为是 SQL 注入。

[original_url]/Forum+Result:+%E8%F1%EF%EE%EB%FC%E7%EE%E2%E0%ED+%ED%E8 %EA%ED%E5%E9%EC+%22Rifsadasy%22;%EF%E8%EA%F2%EE%EA%EE%E4+%E4%E5%F8%E8 %F4%F0%EE%E2%E0%ED;%E7%E0%F0%E5%E3%E8%F1%F2%F0%E8%F0%EE%E2%E0%EB%E8%F1 %FC+100%25+%28%E2%EA%EB%FE%F7%E5%ED+%F0%E5%E6%E8%EC+%F2%EE%EB%FC%EA%EE +%F0%E5%E3%E8%F1%F2%F0%E0%F6%E8%E8%29;

有人见过这种攻击方式吗?他们知道那是什么吗?我尝试使用 HEX、Base64 和其他一些方法对此进行解码,但除了这个 ASCII 文本之外,我什么也没想到:

èñïîëüçîâàí+íèêíåéì+"Rifsadasy";ïèêòîêîä+äåøèôðîâàí;çàðåãèñòðèðîâàëèñü+100%+(âêëþ÷åí+ðåæèì+òîëüêî+ðåãèñòðàöèè);

0 投票
3 回答
645 浏览

php - 在多行正则表达式中是否有用于捕获换行符的标记?

在尝试使用 php 和 preg* 函数进行一些 html 抓取之前,我曾多次遇到过这个问题。

大多数时候我必须捕捉这样的结构:

特别是我想要这样的东西:

\n\n看起来不起作用。

有通用的断线开关吗?