Joomla正则表达式在记录器中

时间:2012-08-20 08:49:41

标签: php regex logging joomla

有人可以解释以下几行中发生的事情。

JLog::addLogger(array('text_file' => 'log.php'), JLog::INFO);
JLog::add('Test', JLog::INFO, '((?:test<[a-zA-Z][^>]*>\s*){0,7})');


//logger output :: testa-za-zs07
  1. 作品((?:test<[a-zA-Z][^>]*>\s*){0,7})
  2. 中发生了什么
  3. 为什么joomla logger没有像((?:test<[a-zA-Z][^>]*>\s*){0,7})那样提供/记录确切的字符串?
  4. 有人可以解释每一段((?:test<[a-zA-Z][^>]*>\s*){0,7})吗?

2 个答案:

答案 0 :(得分:1)

((?:test<[a-zA-Z][^>]*>\s*){0,7})是正则表达式。以下是对此表达式含义的解释:http://regex101.com/r/dZ8sA1

如果在阅读完该链接后仍然不清楚,请询问,我会尝试进一步解释。

答案 1 :(得分:0)

这是一个正则表达式。

((?:test<[a-zA-Z][^>]*>\s*){0,7})

这是一个很大的捕获组。

?:表示该括号的非捕获组。

[a-zA-Z]表示一个字符a-z或A-Z。

[^>]*表示零以上的所有内容,除了“&gt;”。

\s*表示零个或多个空格符号(制表符,空格等)。

{0,7}表示从0到7次重复

所以,基本上整个模式意味着:

寻找测试,然后&lt;符号,然后一个符号a-zA-Z,然后零个或多个符号,除了&gt;,然后&gt;标志,然后可选空间。从0到7次重复寻找这个。因此,它会查找一个标记,前面是'test'字样。

这里有一些example。它仅匹配前7个测试的