from bbs_type_exception import BbsTypeError
-subject_reg_expr = re.compile("(?P<id>.*).dat<>(?P<title>.*)\((?P<res>\d*)\)")
-dat_reg_expr = re.compile("(?P<name>.*)<>(?P<mail>.*)<>(?P<date>.*)<>(?P<msg>.*)<>(?P<title>.*)")
+subject_reg_expr = re.compile("(?P<id>(?:(?!<>).)*).dat<>(?P<title>(?:(?!<>).)*)\((?P<res>\d*)\)")
+dat_reg_expr = re.compile("(?P<name>(?:(?!<>).)*)<>(?P<mail>(?:(?!<>).)*)<>(?P<date>(?:(?!<>).)*)<>(?P<msg>(?:(?!<>).)*)<>(?P<title>(?:(?!<>).)*)")
class BaseType:
_base_reg_expr = re.compile("http://(?P<host>jbbs\.livedoor\.jp)/(?P<board>(?P<brd_dir>[^/]+)/(?P<brd_bbs>[^/]+))(?:/[^/]*){0,1}$")
_cgi_reg_expr = re.compile("http://(?P<host>jbbs\.livedoor\.jp)/bbs/read\.cgi/(?P<board>(?P<brd_dir>[^/]+)/(?P<brd_bbs>[^/]+))/(?P<thread>[^/]+)/.*")
-subject_reg_expr = re.compile("(?P<id>.*)\.cgi,(?P<title>.*)\((?P<res>\d*)\)")
-dat_reg_expr = re.compile("(?P<num>\d+)<>(?P<name>.*)<>(?P<mail>.*)<>(?P<date>.*)<>(?P<msg>.*)<>(?P<title>.*)<>(?P<id>.*)")
+subject_reg_expr = re.compile("(?P<id>[^,]*)\.cgi,(?P<title>.*)\((?P<res>\d*)\)")
+dat_reg_expr = re.compile("(?P<num>\d+)<>(?P<name>(?:(?!<>).)*)<>(?P<mail>(?:(?!<>).)*)<>(?P<date>(?:(?!<>).)*)<>(?P<msg>(?:(?!<>).)*)<>(?P<title>(?:(?!<>).)*)<>(?P<id>(?:(?!<>).)*)")
class TypeJbbs(BaseType):