Я пытаюсь сопоставить начальные нули строки, чтобы заменить на пустую строку. У меня может быть сценарий с ведущими нулями, например десятичная дробь: 0000000.005
или без: 000000000005
.
Я придумал: /.+?(?=0\.)|.+?(?=[0-9]+)/
.
Первая часть соответствует всем лидирующим нулям до тех пор, пока я не достигну паттерна 0.
(т.е. 0000000.005
становится 0.005
). Вторая часть применяет тот же ленивый подход с положительным прогнозом к начальным нулям без десятичной дроби (т. Е. 000000000005
становится 5
).
Поскольку вторая часть (.+?(?=[0-9]+)
) сильнее первой, она всегда превратит 0000000.005
в 5
. Есть ли способ в одном выражении сопоставить только первый раздел, если есть, скажем, наличие десятичного числа, и использовать другое выражение, если нет?
Спасибо!