To be realistic, weapons aren't all that useful given this dude's MO. If he sneaks up behind the girls and grabs them, there's not a lot of time to grab a weapon. The best defense is to pay attention to what's going on around you. If you see someone suspicious coming towards you, run. This isn't a John Woo movie, running is almost always the best idea. Other than that, travel with one or more people (most of these guys are cowards, two people is a whole lot more threatening than one), travel in well lighted areas, don't let yourself get trapped in isolated, dark areas.
I helped teach basic self defence classes for a little while, and the first thing I told the people taking the class was that your best defese is to pay attention and avoid a conflict whenever possible. That doesn't mean you have to be paranoid, it just means be alert. I've had many years of martial arts training, I'm a pretty strong guy in good shape and I carry a very sharp knife that I can open one handed faster than a switchblade everywhere with me and I still feel my best defense is to pay attention to what's going on around me, and avoid a conflict whenever I can.
Seriously, I've seen this kind of thing a lot. Unless you have a good weapon (ie, not pepper spray, mace, etc) and really know how to use it, it just gives you a false sense of security and makes you less cautious than you should be. Most violent criminals are just that, violent. And unless you are willing and able to be the same, you will lose. Your girlfriend is much better off being careful than getting an ineffective weapon.