Проще определить, нет ли совпадения, чем совпадение. В Ruby,
r = /\p{L}\d|\d\p{L}/
"45 45 article 45 45 article 45 45" !~ r #=> true
"45 45 article 45 45 article45" !~ r #=> false
В Ruby, str !~ r
возвращает true
, если совпадений нет, аналогично !(str =~ r)
. Регулярное выражение гласит: «соответствует букве Юникода, за которой следует ди git или ди git, за которыми следует буква Юникода».