Java (JDK), 7171, 70 bytes
(b,B)->{B="_";for(b=47;b++<122;)if(b<58|b>64&&b<91|b>96)B+=b;returnB+=b>57&b<65|b>90&b<97?"":b;return B;}
Inspired by an answer from dorukayhan this is a java.util.function.BiFunction<Character, String, String>