From this Chabad article the restrictions on whom a Kohen can marry are:
A kohen may not marry a ge’rusha (divorcee), chalalah (woman of
defective kohen status), zonah (woman who previously violated certain
sexual prohibitions), giyoret (convert) or chalutzah (a Levirate
widow). If he does marry any of them, their children likewise become
chalalim. Sons born do not have priestly status, and daughter may not
marry kohanim.
The categories are explained in more detail on the site. An ordinary kohen may marry a widow. Only the Kohen Gadol is forbidden to marry a widow because Hashem commanded so in the Torah.
Obviously CYLOR for a real case.
ADDITION
For @Zvi, who in the comment below asks for a non-Chabad source, this on Marital defilement is from Wikipedia.
A male Kohen may not marry a divorcee, a prostitute, a convert, or a
dishonored woman (חללה) (Leviticus 21:7) A Kohen who enters into such
a marriage loses the entitlements of his priestly status while in that
marriage. The Kohen is not permitted to forgo his status and marry a
woman prohibited to him (Leviticus 21:6-7). However, in the event that
a Kohen transgresses a marital restriction, upon termination of the
marriage the Kohen is allowed to re-assume his function and duties as
a full Kohen.[citation needed]
Modern-day kohanim are also prohibited from marrying a divorcee (even
their own divorced wife); a woman who has committed adultery, had been
involved in incest, or had relations with a non-Jew; a convert; or the
child of two converts. A born-Jewish woman who has had premarital
relations may marry a kohen only if all of her partners were Jewish.
This at Jewish Answers.com explains the “zona. prostitute” prohibition;
“Zona” means a prostitute and refers to a Jewish woman who had sex
with a non-Jew. A Kohen is designated by G’d to serve Him in a more
intimate capacity that other Jews and, as such, he is required to
maintain a higher spiritual level. He is not required to marry a
virgin but he cannot marry a convert, a divorcee or a prostitute.