当前位置: 首页 > 知识库问答 >
问题:

php编译的preg_match失败

鲁成天
2023-03-14

我尝试匹配这个表达式:

* ^X-Spam-Flag:是的

我用这个代码:

if(preg_match('\'* ^X-Spam-Flag: YES\'', $value))

但是我有这个错误:

PHP警告:preg_match():编译失败:在偏移量0处没有任何重复

regex和*和^有问题,但我能纠正吗?

共有3个答案

章侯林
2023-03-14

要安全地转义正则表达式特殊字符,您只需使用“preg_quote()”,它会在这些字符前面添加反斜杠。

if(preg_match('\'* ^X-Spam-Flag: YES\'', preg_quote($value)))
劳鹏云
2023-03-14

您靠近解决方案,您必须转义^*,因为它们在正则表达式模式中具有特殊含义:

if(preg_match('\'\* \^X-Spam-Flag: YES\'', $value))

如果转义的单引号看起来很奇怪,用< code>/或< code>~替换可能会更好...然而,这些可以用作分隔符。

有关分隔符的更多信息,请点击此处:http://www.php.net/manual/en/regexp.reference.delimiters.php

金承嗣
2023-03-14

您缺少分隔符。

更改为:

preg_match('#\'* ^X-Spam-Flag: YES\'#', $value)

或者你可能需要:

preg_match('#\* \^X-Spam-Flag: YES#', $value)
 类似资料:
  • 我试图在eclipse中用maven构建一个spark应用程序,但我遇到了一个编译失败。我修正了系统变量,给它提供到JDK的路径,而不是到JRE的路径,如下所示: 并且我将这个字符串添加到变量中,但是没有起作用。因此,我尝试不使用如下但没有新内容。 因此,我尝试通过eclipse来指出我的JDK,如下所示:,我也选择了JDK,但这个解决方案也不起作用,所以我决定使用cmd来修复它: 我检查了,结果

  • PHP代码的编译 PHP是解析型高级语言,事实上从Zend内核的角度来看PHP就是一个普通的C程序,它有main函数,我们写的PHP代码是这个程序的输入,然后经过内核的处理输出结果,内核将PHP代码"翻译"为C程序可识别的过程就是PHP的编译。 那么这个"翻译"过程具体都有哪些操作呢? C程序在编译时将一行行代码编译为机器码,每一个操作都认为是一条机器指令,这些指令写入到编译后的二进制程序中,执行

  • 问题内容: 我正在尝试使用preg_match搜索UTF8编码的字符串。 这应该打印1,因为“ H”在字符串“¡Hola!”中的索引1处。但是它显示为2。因此,即使我在正则表达式中传递了“ u” 修饰符,似乎也不会将主题视为UTF8编码的字符串。 我在php.ini中具有以下设置,并且其他UTF8功能正在运行: 有任何想法吗? 问题答案: “ u”开关仅对pcre有意义,PHP本身并未意识到。 从

  • 2017-05-23T15:14:03.19+0000[STG/17]出---->下载的应用程序包(59M)2017-05-23T15:14:03.36+0000[STG/0]出站失败:Buildpack编译步骤失败2017-05-23T15:14:03.36+0000[STG/0]错误2017-05-23T15:14:03.46+0000[API/0]错误遇到错误:应用程序在Buildpack编

  • 在两台不同的笔记本电脑上使用maven构建相同的项目。一个是运行良好,一个是显示错误。 状态:两个系统的配置相同。 使用的命令:mvn clean install-DskipTests=true 错误: 我什至尝试删除所有内容,例如再次创建. m2文件夹。

  • 我试图在openshift上使用http://www.sitepoint.com/nginx-php5-5-phalcon-openshift/编译phalcon php 一切正常,但我无法完成模块编译:没有错误,只是ssh会话正在关闭。 cd app-root/runtime/repo/cphalcon/build./install 创建libtool configure:正在创建。/confi