Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import std.stdio;
- import std.string;
- import std.conv;
- import std.regex;
- string text = "#Header
- my header text
- ##SubHeader
- my sub header text
- ###Sub3Header
- my sub 3 text
- ###Sub31Header
- my sub 3 text
- #Header21
- my header2 text
- ##SubHeader21
- my header2 text
- ###SubHeader22
- my header3 text
- ";
- int main(string[] args)
- {
- auto re = ctRegex!(`^(#+).+?$.+?(?:(?=^#)|$(?!.))`, "ms");
- int[] nums;
- foreach (m; text.matchAll(re))
- {
- auto len = m[1].length;
- while (nums.length && nums[$ - 1] >= len)
- {
- writeln("</div ", nums[$ - 1], ">");
- nums = nums[0..$ - 1];
- }
- nums ~= len.to!int;
- writeln("<div ", len, ">");
- writeln(m[0]);
- }
- foreach_reverse (len; nums)
- {
- writeln("</div ", len, ">");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement