У вас есть ^[^-]|[^\d\.]
Поддержка классов символов (например, \d
) внутри классов не реализована в некоторых языках.Какой язык вы используете?Возможно, вам повезет больше с [^0-9\.]
.
У вас есть ^[^-]
, который соответствует любой строке, которая не начинается с -
, которая включает цифры, поэтому первая цифра числа будет сдавлена.Вы хотите заменить -
только тогда, когда за ним не следует цифра.
Обратите внимание, что ваше выражение соответствует только одному символу, поэтому вам нужно будет рекурсивно применить его для изменения всей строки.Или вы можете использовать «+» или «*» для сопоставления нескольких символов.Мы могли бы помочь вам лучше, если вы включите несколько строк кода, где это используется.
Концептуально было бы проще извлечь числовую часть и выбросить остальную часть строки, но это звучит какВы хотите, чтобы 34-jk8
превратился в 348
.Как бы вы справились с ведущим -
, таким как -jk348
?