[英]How can I build a regex to match a value?
我需要一个匹配这种字符串的正则表达式:
brand-new-car
brand-new-car-1
brand-new-car-100
307
并且我只需要捕获“名称”,无论字符串是否具有-count
; 像这样:
brand-new-car
brand-new-car
brand-new-car
307
此正则表达式无法正常工作。 它的$1
是完整字符串,而不是没有-count
。
(\S+)(?:-\d+|)$
您需要使第一个捕获组“懒惰”或“非贪婪”。
var re = new RegExp("^(\\S+?)(?:-\\d+)?$");
var testStrings = [
"brand-new-car",
"brand-new-car-1",
"brand-new-car-100",
"307"
];
for (var i=0; i<testStrings.length; i++) {
var result = re.exec(testStrings[i]);
say("result: " + result);
}
结果:
result: brand-new-car,brand-new-car
result: brand-new-car-1,brand-new-car
result: brand-new-car-100,brand-new-car
result: 307,307
我发现txt2re.com对于创建正则表达式以及了解将来如何创建正则表达式非常有用。 试试看。
试试这个(?xms)(^ [\\ w-] +。*?)(?= [\\ w-] + | \\ Z)下面是正则表达式好友的图像
无论字符串是否具有-count,都可以在其中捕获“名称”,黄色和蓝色前景突出显示了不同的选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.