如何使用正则表达式移动“颜色和大小”旁边的颜色和大小?这是我的正则表达式:https://regex101.com/r/fB3jK9/1
结果应该是这样:
我的样本输入如下:
Color and Size - Dark Blue|Small
Dark Blue|Medium
Dark Blue|Large
Dark Blue|X-Large
Color and Size - Black|Small
Black|Medium
Black|Large
Black|X-Large
Ocean|Small
Ocean|Medium
Ocean|Large
Ocean|X-Large
Color and Size - Black|Small
Black|Medium
Black|Large
Black|X-Large
Black|2X-Large
Stone|Small
Stone|Medium
Stone|Large
Stone|X-Large
Stone|2X-Large到目前为止,我所能想到的就是:
\n\t但我需要的输出:
Color and Size - Dark Blue|Small, Dark Blue|Medium, Dark Blue|Large, Dark Blue|X-Large
Color and Size - Black|Small, Black|Medium, Black|Large, Black|X-Large, Ocean|Small, Ocean|Medium, Ocean|Large, Ocean|X-Large
Color and Size - Black|Small, Black|Medium, Black|Large, Black|X-Large, Black|2X-Large, Stone|Small, Stone|Medium, Stone|Large, Stone|X-Large, Stone|2X-Large
// end output发布于 2015-03-30 07:09:33
我建议将“块”放在一起,并在函数中运行替换,例如:
// Getting a block
var regex = /Color and Size[\s\S]*?(?=Color and Size|$)/gi;
// Taken from http://stackoverflow.com/q/29339480/1578604 to repeat string
String.prototype.repeat = function( num ) {
return new Array( num + 1 ).join( this );
}
var results = text.replace(regex, function(m) {
// Get number of line breaks
var lb = m.split("\n").length - 1;
// Now remove newlines and tabs, then add the linebreaks at the end
return m.replace(/\n\t/g, ", ") + "\n".repeat(lb);
});小提琴
https://stackoverflow.com/questions/29339480
复制相似问题