замена всех десятичных точек в строке на «точка» и сохранение того же числа - PullRequest
0 голосов
/ 04 октября 2019

У меня есть строка, в которой я хочу заменить все десятичные точки на «номер числовой точки», например,

input:

с 27,14% до 13,2% для стабильных и умеренно стабильныхварианты соответственно (P = 0,018 по одностороннему U-критерию; рис. 3c). Белки-дестабилизирующие3 варианта также имеют тенденцию быть редкими5;мы наблюдали2, что средняя частота аллелей снизилась с 0,064% для желаемого выхода

:

с 27 пунктов 14% до 13 пунктов 2% для стабильных и умеренно стабильных вариантов соответственно(P = 0 балл 018 по одностороннему U-критерию; рис. 3c). Белки-дестабилизирующие3 варианта также имеют тенденцию быть редкими5;мы наблюдали2, что средняя частота аллелей снизилась с 0 до 064% для

Я пытался:

s = s.replace(/(\d(\d)?)\.(\d+)/g, "$1 point $3");

, но на выходе получается:

с27 баллов от 4% до 13 баллов 2% для стабильных и умеренно стабильных вариантов соответственно (P = 0 балл 8 по одностороннему U-критерию; рис. 3c). Белки-дестабилизирующие3 варианта также имеют тенденцию быть редкими5;мы наблюдали2, что средняя частота аллелей уменьшилась с 0 до 4% для

Следовательно, если после десятичного пробела более одной цифры, она заменяет только эти цифры последней, например

27,14% -> 27 баллов 4%

Может кто-нибудь сказать мне, как это сделать? Спасибо

1 Ответ

1 голос
/ 04 октября 2019

У вас есть дополнительная группа захвата. Вы можете просто использовать 2 группы вместо

(\d\d?)\.(\d+)

В качестве замены используйте

$1 point $2

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...