我构建了一个Web搜寻器,该爬行器从产品名称中提取产品的SKU,但是我一直在努力寻找合适的RegEx以仅匹配SKU。以下是产品列表。从整个文本墙上,我只需要提取粗体字。
第8行和第24行的产品名称中没有SKU,因此我希望它不会提取任何内容。
我尝试了以下RegEx,尽管关闭它并不完美:([AZ] + [0-9] +([A-Za-z] + [0-9] +)?([AZ] +) ?)+([0-9] +)?([AZ] + [0-9]?)
感谢您的帮助。 :)
答案 0 :(得分:1)
根据您提供的示例,我假设所有SKU必须:
基于这些假设,您可以使用以下正则表达式来标识所有SKU:
(?=\S*[A-Z])(?=\S*\d)[A-Z\d]{12,}
答案 1 :(得分:0)
这是适合您的示例的一个...
let deepArray = ['1',[['a'],['b']],[2],[[[['4',[3,'c']]]],[5]]];
let array = [];
function f(d){
Array.isArray(d)? d.forEach(x=> f(x)) : array.push(d);
}
deepArray.forEach(x=>f(x));
console.log(array);
但是,它将匹配12个字符或更长的全大写单词。不知道代码规则的话,很难使其完美。
您没有描述捕获内容需要提取的内容,它们只是用于分组吗?