pcre相关内容

PHP:Preg 替换括号?

preg_replace 只是 PHP 中的括号的正确语法是什么? $search = preg_replace('/\(\)/','',$search); 谢谢 解决方案 假设您想从 $search 中删除 ( 和 )> 字符串: $search = preg_replace('/\(|\)/','',$search); 我认为最快的方法是使用 strtr 函数,如下所示 ..
发布时间:2021-06-14 20:45:40 PHP

PCRE:同时懒惰和贪婪(占有量词)

我正在尝试将一系列文本字符串与 PHP 上的 PCRE 进行匹配,但无法在第一个和第二个之间获得所有匹配项. 如果有人想知道我到底为什么要这样做,那是因为 Doc Comments.哦,我多么希望 Zend 能够使本机/插件函数能够从 PHP 文件中读取文档注释... 以下示例(纯文本)将用于解决问题.它将始终是纯 PHP 代码,文件开头只有一个开始标记,没有结束标记.您可以假设语法总 ..
发布时间:2021-06-14 20:45:35 PHP

正则表达式 (PCRE):以存在字符串为条件匹配所有数字

使用 PCRE,我只想捕获一行中的所有数字,但前提是该行内的任何位置都存在某个字符串(例如“STRING99"). 例如,考虑以下两种情况: a1 STRING99 2b c3da1 2b c3d 在第一种情况下,我希望结果是“19923".在第二种情况下,我想要一个空结果. 我不确定这是否可行.它可能适用于可变长度的lookbehind,但在PCRE 中不受支持.此外,类似于 ( ..
发布时间:2021-06-14 20:45:32 其他开发

可以使用条件来平衡组元素吗?

TL;DR:有没有办法指定一个条件,以便开始元素必须与其配对的结束元素匹配? 示例位于 在 regex101.com 上. ====== 正则表达式中的平衡元素通常通过递归处理.这意味着可以定位嵌套的 {...{...{...}...}...}. 此外,PCRE 允许使用 (?(DEFINE)...) 构造,它允许您定义各种模式而无需实际开始匹配. 在正则表达式中 ..
发布时间:2021-06-14 20:45:29 其他开发

正则表达式 '^[abc]+$' 未按预期工作

我想找到仅由字母 a、b 和 c 组成的每一行.我有正则表达式 print(re.findall('^[abc]+$', text)) 但我没有从这段文字中得到任何结果: Lorem ipsum dolor sat amet, consectetur adipiscing elit, sed do eiusmod临时事件 ut laboure et dolore magna aliqua.U ..
发布时间:2021-06-14 20:45:26 Python

PHP Regexp (PCRE) - 查找所有子字符串的集合

我有以下字符串,例如: aaXXccYYeeXX_ZZkkYYmmXX_ZZnnXXooYYuuXX_ZZvv 如何找到字符串中的所有 XX.*YY.*ZZ 部分?(可能通过使用 preg_match()) XX cc YY eeXX_ ZZ XX _ZZkk YY mmXX_ ZZ XX _ZZnnXXoo YY uuXX_ ZZ XX oo YY uuXX_ ZZ 加上所 ..
发布时间:2021-06-14 20:45:23 PHP

将第一个和第二个单词包裹在 span 类 PHP 中

我正在使用使用 php 的自生成导航.我需要将第一个和第二个单词包装在单独的 div 类中.例如 第一第二词 目前我可以使用 将第一个单词包装在跨度类中 $name = preg_replace('/(?)\b(\w*)\b|^\w*\b/', '$0', $ni->name); 有谁知道我如何改变它来包装前 ..
发布时间:2021-06-14 20:45:20 PHP

使用先前的反向引用作为命名捕获组的名称

有没有办法使用对前一个捕获组的反向引用作为命名捕获组的名称?这可能是不可能的,如果不是,那么这是一个有效的答案. 以下内容: $data = '描述:一些描述';preg_match("/([^:]+): (.*)/", $data, $matches);print_r($matches); 产量: ([0] =>描述:一些描述[1] =>描述[2] =>一些描述) 我尝试使用对第一 ..
发布时间:2021-06-14 20:45:17 PHP

PHP PCRE 函数上的 $0 是多少

我阅读了 preg_filter 函数的文档,它看起来如下.这是 来自 php.net 站点. $subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4');$pattern = array('/\d/', '/[a-z]/', '/[1a]/');$replace = array('A:$0', 'B:$0', 'C:$0');print_r ..
发布时间:2021-06-14 20:45:14 PHP

Python 中使用了哪种正则表达式风格?

我想将哪个 RegEx-Flavour 用于 Python?它是 PCRE、Perl 兼容还是 ICU 或其他什么? 解决方案 它与 Perl 的足够兼容,这意味着大多数 Perl 表达式无需修改即可工作.它旨在与 Perl 兼容,但当然也存在一些细微差别. 从技术上讲,它使用自己的正则表达式风格.例如,在其他实现采用该语法之前很久,Python 正则表达式中就提供了命名组.它还支持 ..
发布时间:2021-06-14 20:45:12 Python

正则表达式非重复二元组

我想要一个 PCRE 正则表达式来创建类似于这个 问题,但没有重复的单词. 全匹配:苹果橙李子第 1 组:苹果橙第 2 组:橙梅 我最接近的是这个,但第二组中没有捕获“橙色". (\b.+\b)(\g)\b 解决方案 您正在寻找这个: /(?=(\b\w+\s+\w+))/g 这是一个快速的 perl 单行代码来演示它: $ perl -e 'while ("苹果橙梅" =~/(? ..
发布时间:2021-06-14 20:45:06 其他开发

仅当在开始和结束模式之间时才匹配模式

我的正则表达式: (?si)\bStart\b(.*?)\bError\b(.*?)\bEnd\b 这适用于以下场景: 事情发生开始事情发生错误事情发生结尾 但也匹配Start和End序列之外的Error: 开始结尾错误开始结尾 当条件变得像场景 #2 时,如何只匹配第一个示例中的匹配? 解决方案 Alexander 的回答 可能已经足够了,但我会这样做: (?si)\bSt ..
发布时间:2021-06-14 20:45:03 其他开发

与正则表达式反匹配

我搜索了一个正则表达式模式,它不应该匹配一个组,而是匹配其他所有内容. 以下正则表达式模式基本有效: index\.php\?page=(?:.*)&tagID=([0-9]+)$ 但是 .* 不应该匹配 TaggedObjects. 感谢您的建议. 解决方案 (?:.*) 是不必要的 - 你没有分组任何东西,所以 .*意思完全一样.但这不是您问题的答案. 要匹配不包含另 ..
发布时间:2021-06-14 20:45:00 其他开发

正则表达式匹配嵌套的开始和结束标签

这里是我想提取标签 {{if}} 和 {{\if}} 之间包含的字符串,我的意思是第一个和最后一个(引擎会重新检查内部的): "before {{if^^p1^p2}} IN1; {{if^ ^p1}} {{iif}} IN3 {{/if}} IN1-1 {{/if}} after""before {{if^ ^p1}} IN1; {{if^ ^p1}} {{if^ ^p1}} IN3 {{ ..
发布时间:2021-06-14 20:44:57 PHP

strsplit 与 gregexpr 不一致

评论我对这个问题的回答应该使用strsplit 不会,即使它似乎正确匹配字符向量中的第一个和最后一个逗号.这可以使用 gregexpr 和 regmatches 来证明. 那么为什么在这个例子中 strsplit 在每个逗号上拆分,即使 regmatches 只返回 same 正则表达式的两个匹配项? # 我们想在第一个逗号和# 最后一个逗号(此字符串中的位置 4 和 13)x 嗯?! ..
发布时间:2021-06-14 20:44:49 其他开发

使用正则表达式匹配递增整数列表

是否可以匹配以逗号分隔的十进制整数列表,其中列表中的整数总是递增一? 这些应该匹配: 0,1,2,38、9、10、111999、2000、200199,100,101 这些不应该匹配(整体而言 - 最后两个具有匹配的子序列): 423,2,11,2,410、11、13 解决方案 是的,当使用支持反向引用和条件的正则表达式引擎时,这是可能的. 首先,可以将连续数字的列表分解为每 ..
发布时间:2021-06-14 20:44:46 其他开发