在正则表达式中弄湿我的脚,我很难让这个工作起作用。
我有一个网址:
/ 800-鲜花INC-的 4124 / 18-roses-的 3123
其中4124是业务ID,3123是产品ID。
对我来说,困难的部分是创建捕获组。目前,我的正则表达式如下:
/(\d+)(?=/|$)/g
不幸的是,这只会选择商家ID,而不会返回产品ID。
非常感谢任何帮助,如果你提供正则表达式,我很乐意,如果你能提出一些解释
谢谢!
答案 0 :(得分:2)
你的正则表达式很好,除非你使用/
作为正则表达式分隔符,你需要在表达式中将其转义:
/(\d+)(?=\/|$)/g
或者,您可以使用不同的分隔符(例如@):
@(\d+)(?=/|$)@g
根据您使用的语言,它可能会以某种数组返回结果,或者可能存在'findAll'类型的方法,而不仅仅是'find'。
答案 1 :(得分:1)
mathematical.coffee是正确的:
var data = '/800-Flowers-inc-4124/18-roses-3123';
var myregexp = /(\d+)(?=\/|$)/g;
var match = myregexp.exec(data);
var result = "Matches:\n";
while (match != null) {
result += "match:" + match[0] + ',\n';
match = myregexp.exec(data);
}
alert(result);