As I am sure there are other letters and numbers besides "B", "12, and "23"
that you will need to match, then let's call your B_12-23 value Code and
your other possible values TextVal; then your test would be this...
If Replace(Replace(Code, "-", ""), "_", "") = _
Replace(Replace(TextVal, "-", ""), "_", "") Then
MsgBox "They match"
Else
MsgBox "They do not match"
End If
Know though that this is not a foolproof test as TextVal's like B-1_2-2_3
would also show up as matching the Code value B_12-23. Only you know if this
is a "good" enough test as only you know the possible Code and TextVal
values that can be in your data. Other more exacting tests might be
possible, but you would have to tell us about any restraints regarding the
"shape" that the Code and TextVal's could possibly take.