From 932b5ca9884ae1cbcf9aed6e2cbbc209916f6b0c Mon Sep 17 00:00:00 2001 From: everzet Date: Tue, 11 Feb 2014 02:57:07 +0000 Subject: [PATCH] Behat generates proper snippets for arguments followed by non-word character --- .../Definition/Pattern/Policy/RegexPatternPolicy.php | 6 +++--- .../Definition/Pattern/Policy/TurnipPatternPolicy.php | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Behat/Behat/Definition/Pattern/Policy/RegexPatternPolicy.php b/src/Behat/Behat/Definition/Pattern/Policy/RegexPatternPolicy.php index d21eb21b6..f4d5ea3d6 100644 --- a/src/Behat/Behat/Definition/Pattern/Policy/RegexPatternPolicy.php +++ b/src/Behat/Behat/Definition/Pattern/Policy/RegexPatternPolicy.php @@ -24,9 +24,9 @@ class RegexPatternPolicy implements PatternPolicy * @var string[string] */ private static $replacePatterns = array( - "/(?<= |^)\\\'(?:((?!\\').)*)\\\'(?= |$)/" => "\\'([^\']*)\\'", // Single quoted strings - '/(?<= |^)\"(?:[^\"]*)\"(?= |$)/' => "\"([^\"]*)\"", // Double quoted strings - '/(\d+)/' => "(\\d+)", // Numbers + "/(?<=\W|^)\\\'(?:((?!\\').)*)\\\'(?=\W|$)/" => "'([^']*)'", // Single quoted strings + '/(?<=\W|^)\"(?:[^\"]*)\"(?=\W|$)/' => "\"([^\"]*)\"", // Double quoted strings + '/(?<=\W|^)(\d+)(?=\W|$)/' => "(\\d+)", // Numbers ); /** diff --git a/src/Behat/Behat/Definition/Pattern/Policy/TurnipPatternPolicy.php b/src/Behat/Behat/Definition/Pattern/Policy/TurnipPatternPolicy.php index f1cb6e052..be97791ea 100644 --- a/src/Behat/Behat/Definition/Pattern/Policy/TurnipPatternPolicy.php +++ b/src/Behat/Behat/Definition/Pattern/Policy/TurnipPatternPolicy.php @@ -28,9 +28,9 @@ class TurnipPatternPolicy implements PatternPolicy * @var string[] */ private static $placeholderPatterns = array( - "/(?<=\s|^)\"[^\"]+\"(?=\s|$)/", - "/(?<=\s|^)'[^']+'(?=\s|$)/", - "/(?<=\s|^)\d+/" + "/(?<=\W|^)\"[^\"]+\"(?=\W|$)/", + "/(?<=\W|^)'[^']+'(?=\W|$)/", + "/(?<=\W|^)\d+(?=\W|$)/" ); /** @@ -82,7 +82,7 @@ public function transformPatternToRegex($pattern) self::PLACEHOLDER_REGEXP, function ($match) { return sprintf( - "[\"']?(?P<%s>(?<=\")[^\"]+(?=\")|(?<=')[^']+(?=')|(?<=\s)\w+(?=\s|$))['\"]?", + "[\"']?(?P<%s>(?<=\")[^\"]+(?=\")|(?<=')[^']+(?=')|(?<=\W)\w+(?=\W|$))['\"]?", $match[1] ); },