[Issue 15489] New: regex - match/matchAll and bmatch - different output
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Thu Dec 31 10:21:20 PST 2015
https://issues.dlang.org/show_bug.cgi?id=15489
Issue ID: 15489
Summary: regex - match/matchAll and bmatch - different output
Product: D
Version: D2
Hardware: x86_64
OS: Windows
Status: NEW
Severity: enhancement
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: gassa at mail.ru
I want to test for the pattern "two consecutive characters, arbitrary sequence,
the same two consecutive characters". My pattern is r"(..).*\1". It works
with bmatch but not with match/matchAll. A complete example follows.
import std.regex, std.stdio;
void main ()
{
writeln (bmatch ("abab", r"(..).*\1")); // [["abab", "ab"]]
writeln (match ("abab", r"(..).*\1")); // [["abab", "ab"]]
writeln (matchAll ("abab", r"(..).*\1")); // [["abab", "ab"]]
writeln (bmatch ("xabab", r"(..).*\1")); // [["abab", "ab"]]
writeln (match ("xabab", r"(..).*\1")); // []
writeln (matchAll ("xabab", r"(..).*\1")); // []
}
As you can see, bmatch (usage discouraged in the docs) gives me the result I
want, but match (also discouraged) and matchAll (way to go) don't.
Original thread in D.learn:
http://forum.dlang.org/thread/lqjffwcpzayznqljxsuu@forum.dlang.org. No one
replied so far, so I assume this is a bug.
--
More information about the Digitalmars-d-bugs
mailing list