/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
final String regex = "^(#{1,6}\\s*[\\S]+)";
final String string = "#heading 1 \n"
	 + "bla bla bla\n"
	 + "### heading 3 djdjdj\n"
	 + "bla bla bla\n"
	 + "## heading 2 bal;kasddfas\n"
	 + "fbla bla bla";
final String subst = "<b>$1</b>";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);

// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);

System.out.println("Substitution result: " + result);		
	}
}