在第n个和第n个+ N标记之间选择内容

时间:2018-06-22 18:11:41

标签: javascript regex

例如,如何选择该短语的句段:

49up_88x126x476mm_3mm gutters_28375x40_Ft First_Rollem_sw

在第二个和第三个“ _”之间还是在第二个和第四个之间,等等?

2 个答案:

答案 0 :(得分:1)

不是那么容易,但这是一种方法。

基本正则表达式<input type="text" pattern="[a-zA-Z0-9]+" required>

位置
A A = 发件人
B = 转数字-从数字-1

捕获组1包含之间内容。

例如2到4将是
A = ^(?:[^_]*_){A}([^_]*(?:_[^_]*){B})_
B = 4-2-1 = 2

正则表达式为1

输出

^(?:[^_]*_){2}([^_]*(?:_[^_]*){1})_

可读正则表达式

 **  Grp 0 -  ( pos 0 : len 39 ) 
49up_88x126x476mm_3mm gutters_28375x40_  
 **  Grp 1 -  ( pos 18 : len 20 ) 
3mm gutters_28375x40  

答案 1 :(得分:1)

这可以不用正则表达式来完成。

只需在下划线处分开。
然后从结果数组中获取所需的元素。
并将您想要的元素重新组合在一起。

JavaScript示例:

var str = '49up_88x126x476mm_3mm gutters_28375x40_Ft First_Rollem_sw';
console.log(str);

var arr = str.split('_');

 
var str_2_3 = arr.slice(2-1,3).join('_'); //2-1, because index starts at 0
console.log(str_2_3);

var str_2_4 = arr.slice(2-1,4).join('_');  
console.log(str_2_4);