작업 : 식별자에는 숫자가 아닌 하나 이상의 문자가 포함되어야하며 숫자, 문자, "_"및 "-"문자 만 포함되어야합니다.문자열에 허용되는 문자 만 포함되어 있는지 확인
따라서 'qwerty', 'identifier-45', 'u _-_-', '-42-'는 유효한 식별자입니다.
'123456', '& 1234', '식별자 42'가 잘못되었습니다.
정규 표현식으로이를 수행 할 수 있습니까?
id.match(/\w\d/)
또는 하나 이상의 일치와
id.match(/\w/) && id.match(/\d/)
아니면 모두 허용되는 문자의 배열을하고 나머지는] [보다 많은 경우 (이를 제거 원래 문자열을 필터링 할 수 있습니다 , 금지 된 것들이있다)?
id.to_a.select{|character| !((0..9) + (a..z) + ['-','_']).include?(character)}.count == 0
모든 허용 된 문자는 문자열에서 제외됩니다 즉, 그 길이가 1 이상이면 긍정적 예측하여 일부 금지 문자 (같은 &)