I'm trying to use string pattern matching to find any typos in a date variable. 

The chosen format of the dates is dd-mm-yyyy. 

My attempts don't work in that they don't discriminate between different types of punctuation, and in that I get rows with the desired formatting rather than the typos. 

Thanks! 

```
# Data
df <- data.frame(EntryVar=c(1:7), DateVar=c("01-01-1938","1-01-1938","12-6-1939","12-06-193","12/06-1938","12.06-1938","12/06/1938"))
df$DateVar <- as.character(df$DateVar)

# Goal
dfgoal <- df[2:7, ]

# My attempts 
grep("[0-9]{2}[[:punct:]][0-9]{2}[[:punct:]][0-9]{4}", df$DateVar, value = TRUE)
df[!grep("[0-9]{2}[[:punct:]][0-9]{2}[[:punct:]][0-9]{4}",df$DateVar,value = TRUE)]

```