The regex [^[:digit:]] will match any non numeric character, e.g. the other characters and symbols which you want to strip.

The call

grep("[^[:digit:]]", df$Housenumber, value=F)

will return a vector containing the first index of your Housenumber column if a match is found. So if a match isn't found, the length of this vector will be zero, and it means you want to keep that row.

In this particular case, I prefer the answer given by @akrun, but my answer also works in the general case of filtering rows using any sort of regex.