diff --git a/src/Analyzer/PatternString.php b/src/Analyzer/PatternString.php index 50c97481..008f1411 100644 --- a/src/Analyzer/PatternString.php +++ b/src/Analyzer/PatternString.php @@ -46,7 +46,7 @@ private function containsWildcard(string $pattern): bool private function startsWithPattern(string $pattern): bool { - return 1 === preg_match('#^'.$this->convertShellToRegExPattern($pattern).'#', $this->value); + return 1 === preg_match('#^'.$this->convertShellToRegExPattern($pattern).'$#', $this->value); } private function convertShellToRegExPattern(string $pattern): string diff --git a/tests/Unit/Analyzer/PatternStringTest.php b/tests/Unit/Analyzer/PatternStringTest.php index e26221d2..f1522ea9 100644 --- a/tests/Unit/Analyzer/PatternStringTest.php +++ b/tests/Unit/Analyzer/PatternStringTest.php @@ -21,4 +21,11 @@ public function test_wildcard_is_for_alphanumeric(): void $this->assertTrue($pattern->matches('*This*')); $this->assertFalse($pattern->matches('This*')); } + + public function test_ends_with(): void + { + $pattern = new PatternString('SoThisIsAnExample'); + $this->assertTrue($pattern->matches('*Example')); + $this->assertFalse($pattern->matches('*This')); + } }