2015-10-07 3 views
2

Мне нужно заменить часть строки, она динамически генерируется, поэтому я никогда не узнаю, что такое строка.Регулярное выражение для замены части строки

Вот пример «session12_2» Мне нужно заменить 2 в конце переменной. Текст «session» всегда будет таким же, но число изменится.

Я пробовал стандартную замену, но это не сработало (я не думал, что это будет).

Вот что я пробовал:

col1 = col1.replace('_'+oldnumber+'"', '_'+rowparts[2]+'"'); 

Edit: Я ищу для Изотерм ех, которая заменит «_» + oldnumber, когда он находится в составе строки.

+0

вам необходимо получить динамический номер после 'сеанса'? – guramidev

+4

Что случилось с '.replace (/ _ \ d + $ /, whatYouNeed)'? – raina77ow

+0

@ raina77ow Не могли бы вы дать мне немного больше информации о том, как это работает? – flyersun

ответ

4

Если вы всегда будете иметь «_» (подчеркивание) в качестве делителя вы можете сделать это:

str = str.split("_")[0]+"_"+rowparts[x]; 

Таким образом, вы разделяете строку с помощью подчеркивания, а затем завершить его с тем, что вам нравится, нет регулярное выражение.

+0

Немного опечатки: на самом деле вы бы разделили строку, а не экран;) – Markai

+0

Или в переводе: 'col1 = col1.split ('_') [0] +" _ "+ rowparts [2];' –

+0

Спасибо Markai. И Роко тоже. Это больше похоже на вопрос. –

0
var re = /session(\d+)_(\d+)/; 
var str = 'session12_2'; 
var subst = 'session$1_'+rowparts[2]; 

var result = str.replace(re, subst); 

Тест: https://regex101.com/r/sH8gK8/1

+0

нет необходимости использовать группу ** Capture ** перед '_' –

Смежные вопросы