commit f4325c3d3e28a6cfbbe5f55952597241c4b1ba6b
Author: Mauro Talevi <[email protected]>
AuthorDate: Sat, 25 Jan 2014 10:51:30 +0100
Commit: Mauro Talevi <[email protected]>
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");