2013-06-20 4 views
1

Хорошо, это немного сложно с моим ограниченным опытом регулярных выражений, и хотя я провел последние 30 минут по поиску в Google, я подозреваю, что он слишком специфичен, чтобы его было легко найти ,Regex соответствует символу, где его не окружено пробелом

В основном то, что мне нужно сделать, это найти строку для - характера и если не нет пространства вокруг него, замените его на «-».

Например:

"Airoh очки-черный" хочет стать "Airoh очки - черный"

же с:

"Airoh Goggles- черный" и "Airoh Goggles -черный"

Я смотрю в lookaheads и задом, но не мог заставить его работать.

Любая помощь оценена - если это имеет значение, ее можно использовать в PHP.

ответ

1
preg_replace('/\s*-\s*/', ' - ', $target); 
+0

Это соответствует обеим «Airoh Goggles - black» и «Airoh Goggles-black», но по мере его стандартизации на «-» это не имеет большого значения. Спасибо за быстрый ответ. –

+0

Возможно, я не понимаю ваш вопрос. Я интерпретировал это как «убедитесь, что каждый дефис окружен ровно одним пространственным символом с обеих сторон, независимо от того, есть ли на обеих сторонах есть места для начала». Если это неправильная интерпретация, то другой ответ, вероятно, то, что вы хотите. Если вы собираетесь использовать этот ответ, то, пожалуйста, примите его :) – jimbojw