嘿我正在尝试分割一串单词,这样我就能抓住图像的全部大小。
现在我有“/perch/resources/res-img13-w368h368.jpg”
我想删除img13之后的'-w368h38',所以它会变成“/perch/resources/res-img13.jpg”
我花了一段时间试图找出正则表达式,但我对正则表达式来说还是新手,并且我真的不知道我在做什么。 任何帮助都是极好的!
答案 0 :(得分:0)
问题和解释相矛盾。我会解释一下。
var str = "/perch/resources/res-img13-w368h368.jpg";
var regexResult = str.exec(/(.*)(-w\d*h\d*)(.*)/);
var result = regexResult[1] + regexResult[3];
部分(.*)
表示匹配任何字符并将它们分组。分组(用括号括起部分)使该部分可以在以后访问。
(-w\d*h\d*)
将一个文字字符串组成" - "," w"字符" - "之后的字符," w",字符" h"之后的无数字或无限数字再一次,没有或无数的数字。
最终(.*)
将字符串的其余部分分组。
当调用函数exec时,结果是一个包含我们指定的组的数组:
[
"/perch/resources/res-img13-w368h368.jpg", //First element is the whole match
"/perch/resources/res-img13", //Our first group
"-w368h368", //Our second group
".jpg" //Our final group
]
答案 1 :(得分:0)
试试这个正则表达式^((?:\/.+)+\/.+)-w(\d+)h(\d+)(\..+)
并告诉我这是否是您正在搜索的内容。第1组匹配/perch/resources/res-img13
,第2组匹配宽度,第3组匹配高度,第4组匹配扩展名。
var input = "something format_abc";
var regex = /^((?:\/.+)+\/.+)-w(\d+)h(\d+)(\..+)/g;
var match = regex.exec(input);
console.log("WIDTH: " + match[2] + "px , HEIGHT: " + match[3] + "px");