commit f4325c3d3e28a6cfbbe5f55952597241c4b1ba6b
Author:     Mauro Talevi <mauro.tal...@aquilonia.org>
AuthorDate: Sat, 25 Jan 2014 10:51:30 +0100
Commit:     Mauro Talevi <mauro.tal...@aquilonia.org>
CommitDate: Sat, 25 Jan 2014 10:52:06 +0100

    JBEHAVE-974:  Allow digits in pattern placeholder names.

diff --git 
a/jbehave-core/src/main/java/org/jbehave/core/parsers/RegexPrefixCapturingPatternParser.java
 
b/jbehave-core/src/main/java/org/jbehave/core/parsers/RegexPrefixCapturingPatternParser.java
index 7686df5..95dad10 100755
--- 
a/jbehave-core/src/main/java/org/jbehave/core/parsers/RegexPrefixCapturingPatternParser.java
+++ 
b/jbehave-core/src/main/java/org/jbehave/core/parsers/RegexPrefixCapturingPatternParser.java
@@ -82,8 +82,9 @@ public class RegexPrefixCapturingPatternParser implements 
StepPatternParser {
     }
 
     private Pattern findAllPrefixedWords() {
-        // Use \p{L} in place of \w to allow for all unicode-supported 
letters, not only ASCII
-        return Pattern.compile("(\\" + prefix + "\\p{L}*)(\\W|\\Z)", 
Pattern.DOTALL);
+        // Use [\p{L}]p{N}] in place of \w to allow for all unicode-supported 
letters and numbers, not only ASCII
+       // http://www.regular-expressions.info/unicode.html
+        return Pattern.compile("(\\" + prefix + "[\\p{L}\\p{N}]*)(\\W|\\Z)", 
Pattern.DOTALL);
     }
 
        private String replaceParametersWithCapture(String escapedMatch,
diff --git 
a/jbehave-core/src/test/java/org/jbehave/core/parsers/RegexPrefixCapturingPatternParserBehaviour.java
 
b/jbehave-core/src/test/java/org/jbehave/core/parsers/RegexPrefixCapturingPatternParserBehaviour.java
index 236f3c3..33291c4 100755
--- 
a/jbehave-core/src/test/java/org/jbehave/core/parsers/RegexPrefixCapturingPatternParserBehaviour.java
+++ 
b/jbehave-core/src/test/java/org/jbehave/core/parsers/RegexPrefixCapturingPatternParserBehaviour.java
@@ -26,6 +26,12 @@ public class RegexPrefixCapturingPatternParserBehaviour {
     }
 
     @Test
+    public void shouldMatchStepWithPatternsUsingNumbersInPlacehoderNames() {
+        assertThatPatternMatchesStep(parser, "a house with 
$numberOf1stFloorDoors doors and $facing2 windows",
+                "a house with 3 doors and 4 windows", "numberOf1stFloorDoors", 
"facing2");
+    }
+
+    @Test
     public void shouldMatchStepWithPatternsUsingAccentsInPlacehoderNames() {
         assertThatPatternMatchesStep(parser, "une maison avec 
$numérosDesPortes portes et $quelques fenêtres",
                 "une maison avec 3 portes et 4 fenêtres", "numérosDesPortes", 
"quelques");



Reply via email to