У вас есть возможность использовать несколько совпадений при тестировании строк в RegEx.Ваша производительность может отличаться, но я бы посоветовал рассмотреть что-то вроде этого:
!?([0-9]|\*)|\W.\test(code[j])
Конечно, вы не предоставили примерные строки, поэтому мне пришлось сделать вывод о вашем использовании.Используя escape-символ \
, вы можете рассматривать *
как обычный символ и добавлять его к своему сопоставителю.Кроме того, вы также можете сократить его до
!?(\d|\*)|\W.\test(code[j])
, где \d
будет соответствовать любой цифре - это то же самое, что [0-9], просто сокращение.
Проверьте это https://regex101.com/r/E3uied/2