Замените регулярное выражение: сопоставьте hypen, которому не предшествует косая черта - PullRequest
1 голос
/ 24 июня 2010

Как я могу заменить Hypen внутри строки, но игнорировать hypens, перед которыми стоит косая черта, например: "Just-Testing-A-String - \ - Но я хочу оставить этот hypen"

Ответы [ 3 ]

3 голосов
/ 24 июня 2010

Если вы хотите оставить только один дефис, следующий за \, вы можете использовать регулярное выражение

(?<!\\)-

UPDATE: На самом деле я не верю, что такой рексег можно создать, потому что в этом случае вам придется сделать две замены: одна для

'-' to ' ' 

и еще один для

'\-' to '-', 

так что вам нужно запустить две замены. Единственное, о чем я могу думать, это то, что если вы согласны с заменой '\' на ''. Тогда вы можете использовать следующее регулярное выражение

((?<!\\)-)|(\\(?=-))
1 голос
/ 24 июня 2010

Попробуйте что-то вроде этого:

регулярное выражение ([^ \\]) -

замените на $ 1YOURSTRING

0 голосов
/ 24 июня 2010

Какой язык вы используете? Я бы сказал об этом по-разному, в зависимости от используемого языка.

Обратная косая черта в вашем примере фактически создает недопустимый escape-символ, "-" выдает ошибку в большинстве языков. Не могли бы вы иметь в виду предисловие, "/"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...