Php 缺少注册表项错误]
我用它从字符串中捕获日期,效果很好。但是在我的php脚本中抛出错误 我要找的是字符串中的日期 2013年11月26日晚上10:17Php 缺少注册表项错误],php,regex,Php,Regex,我用它从字符串中捕获日期,效果很好。但是在我的php脚本中抛出错误 我要找的是字符串中的日期 2013年11月26日晚上10:17 $string=“2013年11月26日晚上10:17收到以下网络潜在客户来源:420来源:互联网-有机(免费)潜在客户推荐费:无”; $datePattern='/(?^在字符组中有特殊含义,它不能单独作为[^]。在本上下文中,它不是指那些字符,就像在[^abc]中,它指的是除a、b和c以外的任何字符,但您没有指定任何字符 因为它只有一个符号,你甚至不需要把它放在
$string=“2013年11月26日晚上10:17收到以下网络潜在客户来源:420来源:互联网-有机(免费)潜在客户推荐费:无”;
$datePattern='/(?^
在字符组中有特殊含义,它不能单独作为[^]
。在本上下文中,它不是指那些字符,就像在[^abc]
中,它指的是除a、b和c以外的任何字符,但您没有指定任何字符
因为它只有一个符号,你甚至不需要把它放在一个字符组中。^
在一个字符组中有一个特殊的含义,它不能作为[^]
单独存在。在这个上下文中,它的意思不是那些字符,就像在[^abc]
中,除了a、b和c之外,它什么都有,但你没有指定
因为它只有一个符号,你甚至不需要把它放在一个字符组中。这是因为[^]
在一些javascript实现中,[^]
的字面意思是“所有可能的字符”(无的否定)。但在php中,如果右方括号紧跟在左方括号或否定符号^
之后,则右方括号被视为文字。因此,[^])*?(?=源代码)
被视为未关闭的字符类
此符号的目的是匹配所有可能的字符(一种[\s\s]
的快捷方式),您可以用以下字符替换它:
$datePattern = '/(?<=received at ).*?(?=Source)/s';
$datePattern='/(?这是因为[^]
的原因
在一些javascript实现中,[^]
的字面意思是“所有可能的字符”(无的否定)。但在php中,如果右方括号紧跟在左方括号或否定符号^
之后,则右方括号被视为文字。因此,[^])*?(?=源代码)
被视为未关闭的字符类
此符号的目的是匹配所有可能的字符(一种[\s\s]
的快捷方式),您可以用以下字符替换它:
$datePattern = '/(?<=received at ).*?(?=Source)/s';
$datePattern='/(?你在文章的语法突出显示中看到什么错误了吗?你想否定什么:[^]
?我相信PHP中的正则表达式引擎认为你否定了]本身,因此它找不到任何右括号。rubular.com也是一个好网站(可能比你正在使用的网站更容易).jordanm…修复了语法错误。但这只出现在帖子上,不在我的脚本中。bagonyi…不确定我是否知道如何修复。这是社区提交表达式列表中的一个表达式,我对其进行了一些修改。如果我去掉“^”,它不会修复它。我只需要捕获“received at”和“Source”之间的所有内容因为这些术语是一致的和唯一的。你在文章的语法突出显示中看到什么错误了吗?你想在这里否定什么:[^]
?我相信PHP中的正则表达式引擎认为你否定了]本身,因此它找不到任何右括号。rubular.com也是一个好网站(可能比你正在使用的更容易).jordanm…修复了语法错误。但这只出现在帖子上,不在我的脚本中。bagonyi…不确定我是否知道如何修复。这是社区提交表达式列表中的一个表达式,我对其进行了一些修改。如果我去掉“^”,它不会修复它。我只需要捕获“received at”和“Source”之间的所有内容因为这些术语是一致的和唯一的。