如何在该正则表达式非捕获组之后捕获所有 13 位数字
How to capture all 13 digits after that regex non-capture group
我正在尝试从 javascript
中的 localstorage
获取 SKU
的产品
该项目是一个 html 字符串,我正在尝试找出一个 regex
来捕获 SKU id
localstorage
return 看起来像这样:
<li class="cart__item">SKU: MLB2046549757 | NAME: Notebook Multilaser Legacy Book Pc310 Preta 14.1 , Intel Celeron N3000 4gb De Ram 64gb Ssd, Intel Hd Graphics 1366x768px Windows 10 Home | PRICE: 15</li><li class="cart__item">SKU: MLB2046549757 | NAME: Notebook Multilaser Legacy Book Pc310 Preta 14.1 , Intel Celeron N3000 4gb De Ram 64gb Ssd, Intel Hd Graphics 1366x768px Windows 10 Home | PRICE: 15</li>
我尝试 (?:SKU\: ){13}
正则表达式来获取例如MLB2046549757
SKU id 但没有用。
我需要捕获SKU:
之后的所有13位数字并将其保存在一个数组中。
有人知道我该怎么做吗?
如果您确信自己拥有一致的内容,请尝试:/(?<=SKU:\s)[\dA-Z]{13}/g
const items = document.querySelectorAll('li');
let SKU = [...items].flatMap(li => li.textContent.match(/(?<=SKU:\s)[\dA-Z]{13}/g));
console.log(SKU)
<li class="cart__item">SKU: MLB2046549757 | NAME: Notebook Multilaser Legacy Book Pc310 Preta 14.1 , Intel Celeron N3000 4gb De Ram 64gb Ssd, Intel Hd Graphics 1366x768px Windows 10 Home | PRICE: 15</li>
<li class="cart__item">SKU: MLB2046585666 | NAME: Notebook Multilaser Legacy Book Pc310 Preta 14.1 , Intel Celeron N3000 4gb De Ram 64gb Ssd, Intel Hd Graphics 1366x768px Windows 10 Home | PRICE: 15</li>
试试这个:
(SKU:\s)(.{13})
(?<=SKU:\s)(.{13})
第二个正则表达式只会产生 SKU 之后的 13 个位置:
参见 demo
-干杯!
我正在尝试从 javascript
中的localstorage
获取 SKU
的产品
该项目是一个 html 字符串,我正在尝试找出一个 regex
来捕获 SKU id
localstorage
return 看起来像这样:
<li class="cart__item">SKU: MLB2046549757 | NAME: Notebook Multilaser Legacy Book Pc310 Preta 14.1 , Intel Celeron N3000 4gb De Ram 64gb Ssd, Intel Hd Graphics 1366x768px Windows 10 Home | PRICE: 15</li><li class="cart__item">SKU: MLB2046549757 | NAME: Notebook Multilaser Legacy Book Pc310 Preta 14.1 , Intel Celeron N3000 4gb De Ram 64gb Ssd, Intel Hd Graphics 1366x768px Windows 10 Home | PRICE: 15</li>
我尝试 (?:SKU\: ){13}
正则表达式来获取例如MLB2046549757
SKU id 但没有用。
我需要捕获SKU:
之后的所有13位数字并将其保存在一个数组中。
有人知道我该怎么做吗?
如果您确信自己拥有一致的内容,请尝试:/(?<=SKU:\s)[\dA-Z]{13}/g
const items = document.querySelectorAll('li');
let SKU = [...items].flatMap(li => li.textContent.match(/(?<=SKU:\s)[\dA-Z]{13}/g));
console.log(SKU)
<li class="cart__item">SKU: MLB2046549757 | NAME: Notebook Multilaser Legacy Book Pc310 Preta 14.1 , Intel Celeron N3000 4gb De Ram 64gb Ssd, Intel Hd Graphics 1366x768px Windows 10 Home | PRICE: 15</li>
<li class="cart__item">SKU: MLB2046585666 | NAME: Notebook Multilaser Legacy Book Pc310 Preta 14.1 , Intel Celeron N3000 4gb De Ram 64gb Ssd, Intel Hd Graphics 1366x768px Windows 10 Home | PRICE: 15</li>
试试这个:
(SKU:\s)(.{13})
(?<=SKU:\s)(.{13})
第二个正则表达式只会产生 SKU 之后的 13 个位置: 参见 demo
-干杯!