【问题标题】:PCRE regex and spacesPCRE 正则表达式和空格
【发布时间】:2014-02-21 12:52:17
【问题描述】:

我正在处理这个正则表达式:

/\{(\w+)::(\w+)::([\sa-zA-Z0-9]+)\}/

所以,从一个长字符串中,我可以得到如下模式:Word::Word::Word and word and word

我在这里测试过这个正则表达式:http://regex101.com/

在 PHP 中它应该可以正常工作。

但是当我输入代码时,它不起作用:

$pattern = '/\{(\w+)::(\w+)::([\sa-zA-Z]+)\}/';

echo preg_match_all(preg_match_all($pattern,'{WORD::WORD::PRUEB ASDF ASD}', $expr,PREG_PATTERN_ORDER));

回显结果为0

【问题讨论】:

  • 你为什么要调用这个 preg_match_all 函数两次。 echo preg_match_all($pattern,'{WORD::WORD::PRUEB ASDF ASD}', $expr,PREG_PATTERN_ORDER);
  • 回声preg_match_all(preg_match_all ?您是在呼应多个匹配项的匹配项数吗?

标签: php regex pcre


【解决方案1】:

您在 preg_match_all 中调用 preg_match_all。改为这样做:

$pattern = '/\{(\w+)::(\w+)::([\sa-zA-Z]+)\}/';
echo preg_match_all($pattern,'{WORD::WORD::PRUEB ASDF ASD}', $expr, PREG_PATTERN_ORDER);

【讨论】:

  • 无论如何,星期一我会复制完整的代码,因为我没有两次调用就得到了它,它不能正常工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 1970-01-01
  • 2014-09-10
相关资源
最近更新 更多