Объединить две строки чисел с помощью регулярных выражений? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть две строки чисел.Как взять номер нижней строки и добавить его в конец номера верхней строки.Между числами также должен быть символ ^.

2 2 2 2  
0 6 12 18

Это должно выглядеть так:

2^0 2^6 2^12 2^18

Ответы [ 3 ]

0 голосов
/ 25 декабря 2018
var nums1 = new[] { 2, 2, 2, 2 };
var nums2 = new[] { 0, 6, 12, 18 };
var s = nums1.Zip(nums2, (x1, x2) => $"{x1}^{x2}");
s.ToList().ForEach(WriteLine);

Та же логика может быть адаптирована для строк.

0 голосов
/ 25 декабря 2018

Regex является избыточным, используйте методы массива, такие как split(), map() и join(), если вам это нужно в качестве строки.

Демо

// If the inputs are strings
var dos = '2, 2, 2, 2';
var seis = '0, 6, 12, 18';

// split() will break a string intoan array
var two = dos.split(', ');
var six = seis.split(', ');

// map() will run a function on each element of an array
var twoSix = two.map(function(t, i) {
  return t + '^' + six[i];
});

// join() will connect all of an array's elements into a string
var str = twoSix.join(', ');

// This is to display better in console
var arr = JSON.stringify(twoSix);

console.log('An array: ' + arr + ' ...');
console.log('... or a string: ' + str);
0 голосов
/ 19 декабря 2018

Предполагая, что все ваши строки содержат ровно 4 числа, вы можете использовать следующее сопоставление / замену:

match         (\d+) (\d+) (\d+) (\d+)\R(\d+) (\d+) (\d+) (\d+)
replace by    \1^\5 \2^\6 \3^\7 \4^\8

Это соответствует двум строкам, каждая из которых записывает 8 чисел в своей группе захвата, заменяя две строки.по линии, построенной из 8 чисел.

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

Попробуйте здесь .

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