Josh,
Sounds like you are on the right track. Honestly, I'm not sure if there is a better way. Sure, you could probably accomplish the same thing using a slightly different method, but I'm not sure if it will be any easier.
You might be able to tighten things up a bit, but generally, anytime you use regex to accomplish something, things will get a little messy.
If your going to use this code repeatadly, I would build a function and everytime you wanted to perform this type or parse you could call the fucntion. I wouldn't really change much, but it might make things easier and clean up your code a bit.
Has that helped at all? I think your headed in the right direction. If str_replace() works, I'd go with it. Maybe someone else can suggest otherwise.