2016-11-07 3 views
2

Я хотел бы удалить конкретный символ (амперсанд) из любой позиции в строке. Пример строк:strip a regex character match from string

&Discounts 
Dis&counts 
Discounts& 
& Discounts 
Discounts & 
& 

Я использую регулярное выражение &(?=\s|[a-zA-Z1-9]) но он может соответствовать только амперсанд в начале и середине строки. Как я могу также совместить, если амперсанд находится в конце строки. И должен уметь исключать матч &. Изменено мое регулярное выражение до &(?=\s|[^amp;]). Он смог исключить строку &, но все же не смог сопоставить амперсанд в конце строки.

+0

Простой регулярных выражений, таких как '& | & 'будет это делать. [demo] (https://regex101.com/r/7HfhQv/2) – Ibrahim

ответ

2

Вам просто нужно поймать

[&](?!amp;) 

и заменить пустой

Example

+0

Редактировать мой вопрос, чтобы исключить из матча & – Dren

+0

@Dren, это то, что вы хотите? strip all &, за которым не следует усилитель; ? если да, то мой обновленный ответ будет работать –

+0

Спасибо, что ваш обновленный ответ работает как шарм. – Dren