當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Expression\Expression類代碼示例

本文整理匯總了PHP中Symfony\Component\Finder\Expression\Expression的典型用法代碼示例。如果您正苦於以下問題:PHP Expression類的具體用法?PHP Expression怎麽用?PHP Expression使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Expression類的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: testMixFlagsAndJokers

 public function testMixFlagsAndJokers()
 {
     $expr = new Expression('~^.*abc.*$~is');
     $expr->getRegex()->setStartFlag(false)->setEndFlag(false)->setStartJoker(false)->setEndJoker(false);
     $this->assertEquals('~abc~is', $expr->render());
     $expr->getRegex()->setStartFlag(true)->setEndFlag(true)->setStartJoker(true)->setEndJoker(true);
     $this->assertEquals('~^.*abc.*$~is', $expr->render());
 }
開發者ID:ngitimfoyo,項目名稱:Nyari-AppPHP,代碼行數:8,代碼來源:RegexTest.php

示例2: buildContentFiltering

 protected function buildContentFiltering(Command $command, array $contains, $not = false)
 {
     foreach ($contains as $contain) {
         $expr = Expression::create($contain);
         $command->add('| xargs -I{} -r grep -I')->add($expr->isCaseSensitive() ? null : '-i')->add($not ? '-L' : '-l')->add('-Ee')->arg($expr->renderPattern())->add('{}');
     }
 }
開發者ID:itillawarra,項目名稱:cmfive,代碼行數:7,代碼來源:GnuFindAdapter.php

示例3: notPath

 /**
  * Adds rules that filenames must not match.
  *
  * You can use patterns (delimited with / sign) or simple strings.
  *
  * $collection->notPath('/^spec\/')
  *
  * @param $pattern
  *
  * @return FilesCollection
  */
 public function notPath($pattern)
 {
     $regex = Expression::create($pattern)->getRegex()->render();
     return $this->filter(function (SplFileInfo $file) use($regex) {
         return !preg_match($regex, $file->getPath());
     });
 }
開發者ID:hunslater,項目名稱:grumphp,代碼行數:18,代碼來源:FilesCollection.php

示例4: buildContentFiltering

 /**
  * {@inheritdoc}
  */
 protected function buildContentFiltering(Command $command, array $contains, $not = false)
 {
     foreach ($contains as $contain) {
         $expr = Expression::create($contain);
         // todo: avoid forking process for each $pattern by using multiple -e options
         $command->add('| grep -v \'^$\'')->add('| xargs -I{} grep -I')->add($expr->isCaseSensitive() ? null : '-i')->add($not ? '-L' : '-l')->add('-Ee')->arg($expr->renderPattern())->add('{}');
     }
 }
開發者ID:TheTypoMaster,項目名稱:SPHERE-Framework,代碼行數:11,代碼來源:BsdFindAdapter.php

示例5: testGlobToRegex

 /**
  * @dataProvider getToRegexData
  */
 public function testGlobToRegex($glob, $match, $noMatch)
 {
     foreach ($match as $m) {
         $this->assertRegExp(Expression::create($glob)->getRegex()->render(), $m, '::toRegex() converts a glob to a regexp');
     }
     foreach ($noMatch as $m) {
         $this->assertNotRegExp(Expression::create($glob)->getRegex()->render(), $m, '::toRegex() converts a glob to a regexp');
     }
 }
開發者ID:EnmanuelCode,項目名稱:backend-laravel,代碼行數:12,代碼來源:GlobTest.php

示例6: toRegex

 /**
  * Converts glob to regexp.
  *
  * PCRE patterns are left unchanged.
  * Glob strings are transformed with Glob::toRegex().
  *
  * @param string $str Pattern: glob or regexp
  *
  * @return string regexp corresponding to a given glob or regexp
  */
 protected function toRegex($str)
 {
     $value = Expression::create($str);
     if ($value->isGlob()) {
         $value = $value->getRegex();
         if (false === strpos($str, '/')) {
             $value->setStartFlag(false);
         }
     }
     return $value->render();
 }
開發者ID:mistymagich,項目名稱:gush,代碼行數:21,代碼來源:PathFilterIterator.php

示例7: run

 /**
  * @param ContextInterface|GitCommitMsgContext $context
  */
 public function run(ContextInterface $context)
 {
     $config = $this->getConfiguration();
     $commitMessage = $context->getCommitMessage();
     foreach ($config['matchers'] as $rule) {
         $expression = Expression::create($rule);
         $regex = $expression->getRegex();
         if ((bool) $config['case_insensitive']) {
             $regex->addOption('i');
         }
         if ((bool) $config['multiline']) {
             $regex->addOption('m');
         }
         if (!preg_match($regex->render(), $commitMessage)) {
             throw new RuntimeException(sprintf('The commit message does not match the rule: %s', $rule));
         }
     }
 }
開發者ID:hunslater,項目名稱:grumphp,代碼行數:21,代碼來源:CommitMessage.php

示例8: isRegex

 /**
  * Checks whether the string is a regex.
  *
  * @param string $str
  *
  * @return bool Whether the given string is a regex
  */
 protected function isRegex($str)
 {
     return Expression::create($str)->isRegex();
 }
開發者ID:scrobot,項目名稱:Lumen,代碼行數:11,代碼來源:MultiplePcreFilterIterator.php

示例9: toRegex

 /**
  * Converts glob to regexp.
  *
  * PCRE patterns are left unchanged.
  * Glob strings are transformed with Glob::toRegex().
  *
  * @param string $str Pattern: glob or regexp
  *
  * @return string regexp corresponding to a given glob or regexp
  */
 protected function toRegex($str)
 {
     return Expression::create($str)->getRegex()->render();
 }
開發者ID:howtolearntocode,項目名稱:symfony,代碼行數:14,代碼來源:FilenameFilterIterator.php

示例10: buildPathsFiltering

 private function buildPathsFiltering(Command $command, $dir, array $paths, $not = false)
 {
     if (0 === count($paths)) {
         return;
     }
     $command->add($not ? '-not' : null)->cmd('(');
     foreach ($paths as $i => $path) {
         $expr = Expression::create($path);
         if ($expr->isGlob() && $expr->getGlob()->isExpandable()) {
             $expr = Expression::create($expr->getGlob()->toRegex(false));
         }
         if ($expr->isRegex()) {
             $regex = $expr->getRegex();
             $regex->prepend($regex->hasStartFlag() ? preg_quote($dir) . DIRECTORY_SEPARATOR : '.*')->setEndJoker(!$regex->hasEndFlag());
         } else {
             $expr->prepend('*')->append('*');
         }
         $command->add($i > 0 ? '-or' : null)->add($expr->isRegex() ? $expr->isCaseSensitive() ? '-regex' : '-iregex' : ($expr->isCaseSensitive() ? '-path' : '-ipath'))->arg($expr->renderPattern());
     }
     $command->cmd(')');
 }
開發者ID:VicDeo,項目名稱:poc,代碼行數:21,代碼來源:AbstractFindAdapter.php

示例11: testRegexRendering

 /**
  * @dataProvider getRegexRenderingData
  */
 public function testRegexRendering($expr, $body)
 {
     $this->assertEquals($body, Expression::create($expr)->renderPattern());
 }
開發者ID:TheTypoMaster,項目名稱:SPHERE-Framework,代碼行數:7,代碼來源:ExpressionTest.php

示例12: buildPathsFiltering

    /**
     * @param Command  $command
     * @param string   $dir
     * @param string[] $paths
     * @param Boolean  $not
     */
    private function buildPathsFiltering(Command $command, $dir, array $paths, $not = false)
    {
        if (0 === count($paths)) {
            return;
        }

        $command->add($not ? '-not' : null)->cmd('(');

        foreach ($paths as $i => $path) {
            $expr = Expression::create($path);

            // Find does not support expandable globs ("*.{a,b}" syntax).
            if ($expr->isGlob() && $expr->getGlob()->isExpandable()) {
                $expr = Expression::create($expr->getGlob()->toRegex(false));
            }

            // Fixes 'not search' regex problems.
            if ($expr->isRegex()) {
                $regex = $expr->getRegex();
                $regex->prepend($regex->hasStartFlag() ? $dir.DIRECTORY_SEPARATOR : '.*')->setEndJoker(!$regex->hasEndFlag());
            } else {
                $expr->prepend('*')->append('*');
            }

            $command
                ->add($i > 0 ? '-or' : null)
                ->add($expr->isRegex()
                    ? ($expr->isCaseSensitive() ? '-regex' : '-iregex')
                    : ($expr->isCaseSensitive() ? '-path' : '-ipath')
                )
                ->arg($expr->renderPattern());
        }

        $command->cmd(')');
    }
開發者ID:Robert-Xie,項目名稱:php-framework-benchmark,代碼行數:41,代碼來源:AbstractFindAdapter.php


注:本文中的Symfony\Component\Finder\Expression\Expression類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。