On 2013-07-15, 11:32, Larry wrote:
Hello,
I read the library reference for regex.
I really miss python's equivalent of finditer.
Sometimes matching is not on purpose and one will want to match all the
occurences to iterate over it since it is much more regarding concerning
the orders and repetitions.
my code :
-----------------------------------------------------------------------------
version(Tango) extern (C) int printf(char *, ...);
import std.stdio;
import std.regex;
import std.file;
import std.format;
int main(char[][] args)
{
string fl = readText("testregexd.txt");
auto m = match(fl, regex(`(<n=(?:hello|goodbye))*`,"g"));
auto c = m.captures;
writeln(c);
return 0;
}
---------------------------------------------------------------------------
Content of testregexd.txt:
----------------------------------------------------------------------------
<n=hello <n=goodbye
----------------------------------------------------------------------------
Any way to workaround ?
Thanks !
Larry
Have you tried iterating over m? This works for me:
import std.stdio;
import std.regex;
import std.file;
import std.format;
int main(char[][] args)
{
string fl = "
<n=hello <n=goodbye
";
auto m = match(fl, regex(`(<n=(?:hello|goodbye))`,"g"));
foreach (c; m)
writeln(c);
return 0;
}
--
Simen