我有两行数字。如何获取下线编号并将其添加到上线编号的末尾。数字之间也应该有^-个字符。
2 2 2 2
0 6 12 18
它应该像这样:
2^0 2^6 2^12 2^18
答案 0 :(得分:0)
假设您的所有行正好包含4个数字,则可以使用以下匹配/替换:
match (\d+) (\d+) (\d+) (\d+)\R(\d+) (\d+) (\d+) (\d+)
replace by \1^\5 \2^\6 \3^\7 \4^\8
这将匹配两行,分别在它们自己的捕获组中捕获8个数字,然后用由8个数字构成的一行替换这两行。
如果每行上的数字量可以变化,那么使用正则表达式就无法解决这个问题。
答案 1 :(得分:0)
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);
相同的逻辑可以适用于字符串。
答案 2 :(得分:0)
正则表达式过大,如果需要将其用作字符串,请使用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);