39得票3回答
为什么不能在零宽度回顾断言中使用重复量词?

我一直以为在零宽度断言中(Perl兼容的正则表达式[PCRE]),您不能使用重复量词。然而,最近我发现您可以在向前查看断言中使用它们。 当使用零宽度向后查找并且防止使用重复量词时,PCRE正则表达式引擎是如何工作的? 这是R中PCRE的一个简单示例: # Our string x &lt...

20得票3回答
如何使用PHP preg匹配带音调符号的字符?

我希望让用户不仅可以填写字母和数字,还可以填写“特殊”字母,例如“á”、“é”等。但是,我不希望他们能够使用像“!”、“@”、“%”等符号。 有没有一种方法可以编写正则表达式来实现这一点?(最好不需要指定每个特殊字母。) 现在我有:$reg = '/^[\w\-]*$/';

8得票2回答
将preg_match_all转换为简单数组

我有 preg_match_all 函数: preg_match_all('#<h2>(.*?)</h2>#is', $source, $output, PREG_SET_ORDER); 它的工作方式是按预期运行的,但问题在于,它将所有项都匹配了两次,并且生成了一...

12得票3回答
ereg_replace改为preg_replace?

如何转换HTML编码为文本ereg_replace(".*\.(.*)$","\\1",$imgfile); topreg_replace... ? 我遇到了些问题,需要解决它?

15得票1回答
PCRE和PCRE2之间的正则表达式差异

我们正在考虑将内部正则表达式引擎从PCRE更换为PCRE2。只有正则表达式语法暴露给用户,因此库API的差异对我们的使用不构成问题。但是,我们必须记录任何行为变化。 许多网站讨论API差异,但我没有找到任何列出正则表达式中实际差异的网站。虽然我知道在PCRE中[\w-_]与[\w\-_]相同,...

7得票4回答
PHP:浏览器版本号user-agent与Version/x.x.x(Safari和Opera)

我写了一个简单的类来检查用户代理,以显示不兼容浏览器的警告。我在服务器端执行此操作,我知道这也可以在客户端执行。 首先,我不太擅长编写正则表达式。 我编写了一个正则表达式,用于搜索小写浏览器名称后跟版本号。我使用类似以下数组的foreach(): <?php $browse...

9得票4回答
为什么递归正则表达式不是正则表达式?

我正在阅读一些在这个问题中的回答,看到有些人说递归正则表达式严格来说不是正则表达式。 为什么会这样呢?

9得票4回答
如何让PCRE与C++配合使用?

这是一个新手问题,但我希望我能尽可能清楚地表达我的问题。 我正在尝试在C++中进行模式匹配。 我已经从这里下载了PCRE的Win32版本,并将下载的pcre3.dll和pcreposix3.dll文件放置在Dev-CPP的lib文件夹中(我正在使用Bloodshed Dev-C++ 4.9...

9得票1回答
在什么情况下在'strsplit'中设置'perl=TRUE'无法按预期工作(或根本不起作用)?

我刚刚在优化代码时进行了一些基准测试,观察到使用perl=TRUE的strsplit比使用perl=FALSE的strsplit运行更快。例如: set.seed(1) ff <- function() paste(sample(10), collapse= " ") xx <-...

10得票4回答
能否删除已匹配的捕获组,使其不参与匹配?

在PCRE2或任何支持前向反向引用的正则表达式引擎中,是否可以将之前循环迭代中匹配的捕获组更改为一个非参与捕获组(也称为未设置的捕获组或非捕获组),从而导致测试该组的条件语句与其“false”子句而不是“true”子句匹配? 例如,考虑以下PCRE正则表达式: ^(?:(z)?(?(1)a...