Если я правильно вас понял, вы хотите удалить V1
, V2
и V3
из конца вашего текста, для чего вам следует использовать V[123]
регулярное выражение вместо [V]|[V1]-|[V2]|[V3]
и, если быть более точным,, используйте \s*V\d*$
регулярное выражение.
Здесь \s*
соответствует любому пробелу, затем соответствует V
, а затем соответствует одной или нескольким цифрам и, наконец, $
соответствует концу строки.
И причина, по которой это не сработало для вас, заключается в том, что, когда вы помещаете символы в квадратные скобки, он называется классом символов и соответствует любому одному символу в квадратных скобках. Следовательно, [V1]
будет соответствовать либо V
, либо 1
и заменять его пустой строкой, что не соответствует вашим ожиданиям.