You deserve better.
I'm a big believer in second chances.
As a sincerely flawed human being, I've experienced first hand how easy it easy to make mistakes and unintentionally let people down. And I've always been very grateful when those people gave me another chance to make it up to them.
That being said, I didn't make those mistakes twice because I cared about the person and hurting them once was enough to keep me from doing it again. In other situations, I've had people let me down, say they were sorry, acted very sorry, but then turned around and did it again. And again. And again.
I obviously broke up with those people, because they didn't care about me enough to adjust their shitty behavior.
Saying sorry isn't actually being sorry. Actions always speak louder than words, and if someone really doesn't want to hurt then they're going to make an effort not to hurt you.
Being careless about your feelings is more than enough of a reason to breakup with someone. If they're not willing to take you into consideration when conducting their lives, then why the hell would you stay with them?!
Yes, everybody makes mistakes, and it's important to understand that. Circumstances are different for everyone and there's no one rule you should live by.
However, if someone is consistently letting you down, with no change in behavior in sight, then you should leave.
You deserve someone who cares as much about you as you do about them. I think that's one rule we can all agree on.