У меня есть строка: 0220110000AL0091, и я хотел бы вернуть последний 000 для замены тремя пробелами.
Итак, для: 0220110000AL0091 я хочу заменить на 0220110 AL0091.
Я не знаю, как применить регулярное выражение между 7-м и 11-м символами!
Спасибо
Путем сопоставления 6 произвольных символов перед, а затем необходимого количества нулей / цифр после этого…?
Работаю с postgres.





Вы ищете отрицательный взгляд вперед. Вы будете искать последовательность из трех нулей, за которыми не следует ноль.
Вот как это можно сделать в Python (doc здесь, ctrl + f -> (?!):
>>> import re
>>> s = "0220110000AL0091"
>>> re.sub("000(?!0)", " ", s)
'0220110 AL0091'
>>>
Спасибо, отлично!
@Rightleg, как вы узнали, что OP использует python?
@ctwheels Я не знаю, это просто пример общего языка, который я знаю. Кроме того, до тех пор, пока язык поддерживает предположения опережения, это регулярное выражение, вероятно, будет работать, а если бы это было не так, я думаю, что отрицательный прогноз все равно будет решением.
С каким языком вы работаете? Предполагая, что вы имеете в виду общее повторение, а не обязательно три нуля, попробуйте
/(.)\1\1(?!\1)/и замените его тремя пробелами.