HPCC ECL REGEX обратные значения
Я использую библиотеку REGEX, как определено здесь http://userguide.icu-project.org/strings/regexp
При этом у меня есть конкретная проблема, которую я хотел бы использовать для исправления регулярных выражений.
Input := '!Tim !~ Dan~';
Output := Tim !~ Dan
REGEXREPLACE('((?<![!])~)' ,Input,' '); //Results in : !Tim !~ Dan
REGEXREPLACE('((?![~])!)|((?<![!])~)',Input,' '); //Results in : Tim ~ Dan
Насчёт этого высказывания! после ~ должен быть удален?
Как мне удалить все! и ~ не удаляя комбинацию!~ в одной команде Regex.
Бонусные баллы, если вы можете сказать мне, как заработать!~! работать в одной команде.
Спасибо!!
1 ответ
Решение
Вы можете использовать следующее регулярное выражение:
(!~)|[!~]
и заменить на $1
обратная ссылка. Смотрите демо-версию регулярного выражения.
Детали:
(!~)
- соответствует и фиксирует в группе 1 а!~
последовательность символов|
- или же[!~]
- один!
или же~
персонаж
$1
обратная ссылка повторно вставляет значение, сохраненное в группе 1, обратно в результирующую строку.