2020-02-13 11:09:51 +01:00
|
|
|
<?php
|
|
|
|
|
2021-05-09 20:15:43 +00:00
|
|
|
declare (strict_types=1);
|
2020-02-13 11:09:51 +01:00
|
|
|
namespace Rector\NodeNameResolver\Regex;
|
|
|
|
|
2021-05-25 11:50:23 +00:00
|
|
|
use RectorPrefix20210525\Nette\Utils\Strings;
|
2020-02-13 11:09:51 +01:00
|
|
|
final class RegexPatternDetector
|
|
|
|
{
|
2020-02-17 16:13:38 +01:00
|
|
|
/**
|
|
|
|
* @var string[]
|
|
|
|
*
|
|
|
|
* This prevents miss matching like "aMethoda"
|
|
|
|
*/
|
|
|
|
private const POSSIBLE_DELIMITERS = ['#', '~', '/'];
|
2021-05-09 20:15:43 +00:00
|
|
|
public function isRegexPattern(string $name) : bool
|
2020-02-13 11:09:51 +01:00
|
|
|
{
|
2021-05-25 11:50:23 +00:00
|
|
|
if (\RectorPrefix20210525\Nette\Utils\Strings::length($name) <= 2) {
|
2021-05-09 20:15:43 +00:00
|
|
|
return \false;
|
2020-02-13 11:09:51 +01:00
|
|
|
}
|
|
|
|
$firstChar = $name[0];
|
2021-05-09 20:15:43 +00:00
|
|
|
$lastChar = $name[\strlen($name) - 1];
|
2020-02-13 11:09:51 +01:00
|
|
|
if ($firstChar !== $lastChar) {
|
2021-05-09 20:15:43 +00:00
|
|
|
return \false;
|
2020-02-13 11:09:51 +01:00
|
|
|
}
|
2021-05-09 20:15:43 +00:00
|
|
|
return \in_array($firstChar, self::POSSIBLE_DELIMITERS, \true);
|
2020-02-13 11:09:51 +01:00
|
|
|
}
|
|
|
|
}
|