Combining different names in a database
@Ev.Kounis solution is simple and effective, I've used it myself successfully. Most of the time, we only care the top chess players. That's what I did:

Created a simple function like @Ev.Jounis suggests
I also scanned the player rating. For example, there were several "Carlsen" players in my database, but they wouldn't have FIDE rating over 2700.
I also search the other player in the game. If I'm interested in Garry Kasparov, he wouldn't be playing a club game with a 1600 rated opponent.
Get a better database. Chessgames and TWIC have better quality than Chessbase.

You could try regular expression, but it's unnecessary. There's a simple pattern how a player name would differ:

"Carlsen, M" == "Magnus Carlsen"

This applies to other players in the database. Save regular expression until you really have to do it.
I am studying a chess database with more than one million games. I am interested in identifying some characteristics of different players. The problem I have is that each single player appears with several identifications. 
For example,
"Carlsen, M.", "Carlsen, Ma", "Carlsen, Magnus" and "Magnus Carlsen" 
all correspond to player "Magnus Carlsen".
Furthermore, there are other players which share Carlsen's last name, but have different names, such as "Carlsen, Ingrid Oen" and "Carlsen, Jesper".
I need to identify all the different names in the database which correspond to each specific player and combine them. Is there any way to do that with Python?