Execute a Markov algorithm: Difference between revisions

Content added Content deleted
(→‎{{header|D}}: improved regex to filter out comments)
Line 956: Line 956:
string[][] capt;
string[][] capt;
foreach (line; rule) {
foreach (line; rule) {
auto m = match(line, r"(.*?)\s+->\s+(\.?)(.*)");
auto m = match(line, r"^([^#]*?)\s+->\s+(\.?)(.*)");
if(!m.empty) capt ~= array(m.captures)[1..$];
if (!m.empty) capt ~= array(m.captures)[1 .. $];
}
}
redo:
redo:
Line 972: Line 972:
auto readFile(in string fn) {
auto readFile(in string fn) {
string[][] res;
string[][] res;
foreach(a; split(cast(string)read(fn), newline~newline))
foreach (a; split(cast(string)read(fn), newline~newline))
res ~= splitlines(a);
res ~= splitlines(a);
return res;
return res;