Я ооочень близко.Я пытаюсь кодировать выражение регулярного выражения для Notepad ++, чтобы заменить тире пробелом, игнорируя тире уже с пробелом до / после.Я понимаю, что могу найти / заменить "-" на "foobarfoo", затем найти "-", заменив "", а затем преобразовав "foobarfoo" обратно в "-", но, черт возьми, я пытаюсь выучить регулярные выражения!
Вот моя проблема:
Адаптер - BNC Мужской к BNC-Женский, Прямой угол
к
Адаптер - BNC Мужской кBNC Female, Right Angle
(обратите внимание на исчезающую черту в "BNC Female")
Ближайшее, что я получаю, использует это: /(?:[^( )])\-(?:[^( )])/g
, ноэто приводит к тому, что он находит одну букву впереди, черту и следующую букву:
Адаптер - BNC Мужской к BN CF emale, Прямой угол
ПОЧЕМУ он выбирает символы пре / пост?Разве это не:
(?:[^( )])
найти что-нибудь кроме пробела (в качестве группы без захвата) ...
\-
..., которая следует за дефисом ...
(?:[^( )])
... и за ним следует все, кроме пробела (в качестве группы без захвата)
Я еще ближе, я заменяю первый член на (?=[^( )])
, но если я изменяю третий членна (?![^( )])
Я вернулся к тому, с чего начал - просто выбрал тире между двумя пробелами.GRRRR.
Больше образцов здесь http://regexr.com/444i2