2015-03-31 3 views
2

Я унаследовал код, в котором не было сделано никакого внимания относительно белого интервала, и я в процессе его исправления.Регулярное выражение = знаки не окружены пробелами и заменяются пробелами

Мои условия, которые я ищу, это найти знак равенства, который не окружен пробелами, поэтому я могу заменить их на «=».

Как только я это сделаю, я буду делать то же самое с «! =», «>», «==» и так далее.

Может ли кто-нибудь указать мне в правильном направлении?

Заранее спасибо.

ответ

5

Вы можете соответствовать этому регулярному выражению:

/\S([<>!=]=|[<>=])\S/ 

\S будет соответствовать любому не-белое пространство по обе стороны от этих операторов.


Вы можете использовать это регулярное выражение для сравнения:

\s*(?:(?<!\s)([<>!=]=|[<>=])|([<>!=]=|[<>=])(?!\s))\s* 

И использовать это для замены:

" $1 " 
+1

Спасибо. Сначала я обработаю случаи == и the! =, А затем вернусь к обращению с символами single =. –

+1

Да '[<>! =] =' Будет соответствовать '<=, > =,! =, ==' – anubhava

+0

Хмммм. Это не выполняется в случае «a == b» и «a == b». Можете ли вы так любезно объяснить структуру своего регулярного выражения? Большое спасибо. –

Смежные вопросы