#regex
Вопрос:
С помощью регулярного выражения s{2}b
я пытаюсь заменить последние два пробела перед словом на канал (|)
, используя границу слова, но он игнорирует число -18.055,81
. С каким выражением я также могу получить два последних пробела до -18.055,81
этого ?
Пример:
1234 - This is a test 18.055,81 -18.055,81 0,00 0,00 18.055,81
Результаты в:
1234 - This is a test |18.055,81 -18.055,81 |0,00 |0,00 |18.055,81
Чего я хочу:
1234 - This is a test |18.055,81 |-18.055,81 |0,00 |0,00 |18.055,81
Комментарии:
1. Если Lookaheads поддерживаются, вы можете использовать
s{2}(?=S)
.
Ответ №1:
Вы можете использовать
s{2}(?=-?d)
s{2}(?=-?w)
Смотрите демонстрацию регулярных выражений. Подробные сведения:
s{2}
— два пробельных символа(?=-?d)
— за которыми сразу же следует необязательный дефис, а затем цифра.
Если ожидаются какие-либо другие символы слов (буквы или подчеркивания), замените d
на w
.
Комментарии:
1. Спасибо! Это именно то, что я искал 🙂