Как удалить финальный символ дефиса

Вопрос:

Я использую Regex (в ColdFusion) для замены не-буквенно-цифровых символов с помощью дефиса, например

#REReplace("MyString (NewString)", "[^a-z0-9]", "-")#

Поскольку закрывающая скобка в строке ) также преобразуется в дефис -, я получаю конечный дефис, который я хочу удалить. Вместо этого MyString-NewString- мне нужна MyString-NewString.

Каков шаблон регулярного выражения для соответствия нижнему регистру? Я думал, что это (.*)-? но это не работает для меня. Очевидно, что я накладываю несколько функций REReplace, чтобы получить результат, который я хочу, но не могу получить правильный шаблон регулярного выражения.

Лучший ответ:

Ваш шаблон, соответствующий хвостовому дефису, будет

-$

$привязка, соответствующая концу строки.

Ответ №1
  1. Сначала удалите все конечные специальные символы с пустой строкой. И сохраните конечный результат в строковой переменной.

    Regex: [^a-zA-Z0-9]$ Заменительная строка = ""

  2. Теперь замените один или несколько специальных символов на -

    Regex: [^a-zA-Z0-9]+ Заменительная строка = "-"

Оцените статью
TechArks.Ru
Добавить комментарий