有人可以解释以下几行中发生的事情。
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
((?:test<[a-zA-Z][^>]*>\s*){0,7})
((?:test<[a-zA-Z][^>]*>\s*){0,7})
那样提供/记录确切的字符串?((?:test<[a-zA-Z][^>]*>\s*){0,7})
吗?答案 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个测试的