pcre相关内容

在 PCRE 中,是否存在“否定交替"或“否定字符串类",即“否定字符类"之类的东西?

好的,所以当模式 [abc] 匹配单个字符 a、b 或 c,模式 [^abc] 匹配任何给定的字符,不是 a、b,或者c. 现在,如果我在上面的语句中用 string 替换 character,如果我还将第一个模式更改为替代结构,如 (abc|def|ghi).-- 它将匹配三个字符的连续字符串,等于 abc、def 或 ghi.我该怎么做才能匹配不等于abc、def或ghi的任何三个字符的 ..
发布时间:2021-06-14 20:44:39 前端开发

执行正则表达式替换 Perl

假设我有 IP 10.23.233.34,我想简单地将 233 换成 234.第一个、第二个和最后一个八位字节是未知的.第三个八位字节是 233 或 234.我想进行替换,使其与 IP、subs 匹配并保留其他所有内容,同时仍切换最后一个八位字节.例如: 输入:10.23.233.34 s/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){}2 ..
发布时间:2021-06-14 20:44:36 其他开发

PHP PCRE 错误 preg_replace

我收到一个错误:*警告:preg_replace():编译失败:PCRE 不支持 test.php 中偏移 50 处的 \L、\l、\N、\U 或 \ustrong> 在第 13 行.* 如何制作正确的函数pregForPreg? 解决方案 您似乎想转义特殊的正则表达式字符.这个函数已经存在,叫做preg_quote(). 你得到错误,因为你没有正确地转义 \: TI - 是 ..
发布时间:2021-06-14 20:44:33 PHP

使用星号 * 量词的奇怪结果

我正在尝试在一个简单的字符串上练习星号 * 量词,但是虽然我只有两个字母,但结果包含第三个匹配项. 结果出来了: 数组(1) {[0]=>数组(3){[0]=>字符串(1)“一个"[1]=>字符串(0)“"[2]=>字符串(0)“"}} 据我所知,它首先匹配了 a,然后没有匹配 b,所以结果应该是 数组(1) {[0]=>数组(2){[0]=>字符串(1)“一个"[1]=>字符串( ..
发布时间:2021-06-14 20:44:30 PHP

m 正则表达式模式修饰符

$subject = "SIverygood \n SIverygood\n";$pattern = '/^SI/m';preg_match_all($pattern, $subject, $matches2,PREG_OFFSET_CAPTURE);var_dump($matches2); 我无法理解 m 和 s 修饰符.我想在每个换行符的开头获得 SI.我这样做是为了练习目的,以了解 m 和 ..
发布时间:2021-06-14 20:44:27 PHP

解析PHP中类似smarty的字符串的参数和值

我正在尝试创建类似 smarty 的类似解析器.对于非常小的代码部分,并且不想实现巨大的类似 smarty 的解析器. 我想到的是:(?:([a-zA-Z0-9]+)=(?:([^\v '"]+)|"(.*?)"|'(.*?)')|([a-zA-Z0-9]+)) 在 https://regex101.com/r/l5FI5f/2/ 上看起来不错.每场比赛都是 1 或 2 个条目 + 完 ..
发布时间:2021-06-14 20:44:25 PHP

为什么这个 preg_replace 调用返回 NULL?

为什么这个调用返回NULL?正则表达式错了吗?对于 test 输入,它不会返回 NULL.文档说 NULL 表示错误,但它可能是什么错误? $s = hex2bin('5b5d202073205b0d0a0d0a0d0a0d0a20202020202020203a');//$s = '测试';$s = preg_replace('/\[\](\s|.)*\]/s', '', $s);var_du ..
发布时间:2021-06-14 20:44:22 PHP

文字分隔符( \Q \E 块内的分隔符)

我一直在尝试制作一些基于 RegEx 的函数,其中大部分使用 \Q 和 \E 作为一些RegEx pattern 是用户输入. 所以,假设我们正在使用 delimiter / 并希望将它与 / 匹配,该函数将在其中构造一些东西/\Q/\E/ 的行. 我不知道为什么 /\Q/\E/ 与 / 不匹配,但与其他所有分隔符匹配,除非您使用相同的分隔符输入. 也许,它认为分隔符是结尾,即使 ..
发布时间:2021-06-14 20:44:19 PHP

用 preg_replace 大写单词的每个首字母

所以我将一些句子插入到具有一些自动更正过程的数据库中.下面这句话: $sentence = "这只狗是你的吗,因为它不可能是我的"; 以下代码将每个单词大写,但要确保它不大写缩写(例如 n't): str_replace("'S", "'s", preg_replace("/(\w+)n'T?/", "$1n't", (preg_replace("/\b[a-z]/e",'strtouppe ..
发布时间:2021-06-14 20:44:13 PHP

PCRE 正则表达式到 sed 正则表达式

首先很抱歉我的英语不好.我是德国人. 下面给出的代码在 PHP 中运行良好: $string = preg_replace('/href="(.*?)(\.|\,)"/i','href="$1"',$string); 现在 sed 也需要同样的东西.我觉得应该是: sed 's/href="(.*?)(\.|\,)"/href="{$\1}"/g' test.htm 但这给了我这个错 ..
发布时间:2021-06-14 20:44:07 其他开发

如何访问正则表达式子程序中的捕获组?

我有一个我想在几个地方使用的模式,但我想访问该模式的内部部分.有没有办法做到这一点? 在这个简化示例中: (?(DEFINE)(? \s+ (? 是 \s+ a) \s+ ))这 (?&_isa_) (?test) 我想在正则表达式成功时访问命名组 isa 中匹配的捕获字符串,而不必像这样拉出周围的 \s+: (?(DEFINE)(? ..
发布时间:2021-06-14 20:44:04 其他开发

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

我想将字符串中的时间 (10.00) 与日期和时间 ("21.01.08 10.00") 匹配.我正在使用以下正则表达式: new RegExp("\\b[0-9]{1,2}\\.[0-9]{1,2}\\b" "g"); 但这与 21.01.08 和 10.00 的 21.01 相匹配. 我使用 PCRE 作为我的正则表达式引擎. 更新: 对不起,我应该更清楚.数据和时间是更 ..
发布时间:2021-06-14 20:44:01 其他开发

与 preg_match_all 匹配

我得到了这个正则表达式: $val = "(123)(4)(56)";$regex = "^(\((.*?)\))+$";preg_match_all("/{$regex}/", $val, $matches); 谁能告诉我为什么这只匹配最后一个数字 (56) 而不是每组数字单独匹配? 这是 $matches 在上述正则表达式运行后包含的内容: 数组0 =>大批0 =>字符串'(123 ..
发布时间:2021-06-14 20:43:54 PHP

pcre 匹配 C 中的所有组

我想使用 PCRE C 库递归匹配一个组. 例如 pattern = "(\d,)"主题 = "5,6,3,2,"OVECCOUNT = 30pcrePtr = pcre_compile(pattern, 0, &error, &erroffset, NULL);rc = pcre_exec(pcrePtr, NULL, 主题, (int)strlen(subject),0, 0, ove ..
发布时间:2021-06-14 20:43:51 其他开发

这个递归正则表达式究竟是如何工作的?

这是这个问题. 看看这个模式: (o(?1)?o) 匹配任意长度为2n的o序列,n≥1. 它有效,请参阅 regex101.com(添加字边界以更好地演示). 问题是:为什么? 在下文中,字符串的描述(匹配与否)将只是一个粗体数字或一个描述长度的粗体术语,例如 2n. 分解(添加空格): ( o (?1)? o )( ) # 捕获组 1o o # 在组的开头和结尾各匹配 ..
发布时间:2021-06-14 20:43:49 其他开发

用于匹配化学式的严格正则表达式

在使用 Perl 处理大型文本化学数据库的过程中,我遇到了使用正则表达式匹配化学式的问题.我之前看过这些 两个主题,但建议的答案对于我的要求来说太松散了. 具体来说,我(公认有限)的研究使我这篇文章 给出了当前接受的化学符号的正则表达式,我将复制到这里以供参考 [BCFHIKNOPSUVWY]|[ISZ][nr]|[ACELP][ru]|A[cglmst]|B[aehikr]|C[adef ..
发布时间:2021-06-14 20:43:46 其他开发