Регулярное выражение для слова без учета регистра Javascript - PullRequest
0 голосов
/ 02 мая 2018

Есть ли простой способ извлечь значения из текста произвольной формы?

Я пытаюсь извлечь из этого вейлы:

"The process started from ITEM: ASDE3423423, Item Group: A_GROUP, ITEM Function: ['/A/B/C'], Price Code: average."

Мне нужны o / p, которые после ':' основаны на ключе (например, ITEM, группа товаров)

ITEM = ASDE3423423
Item Group = A_GROUP
ITEM Function = ['/A/B/C']
Price Code = average

Я использую:

ITEM:\s*([^,]+)
Item Group:\s*([^,]+)
ITEM Function:\s*([^,]+)
Price Code:\s*([^,]+)

и разбиение строки с помощью ':' и получение str [1] для данного ключа (например, ITEM, Item Group)

Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 02 мая 2018

Вместо того, чтобы возвращать полное совпадение и разбивать его, возвращаем группу захвата.

// DATA STRING
var str = 'The process started from ITEM: ASDE3423423, Item Group: A_GROUP, ITEM Function: [\'/A/B/C\'], Price Code: average.',

// REGEX
reg = /ITEM:\s*([^,]+)|Item Group:\s*([^,]+)|ITEM Function:\s*([^,]+)|Price Code:\s*([^,]+)/g;

// GET MATCH
match = reg.exec(str);

// LOOP MATCH
while(match != null) {
  
  // LOG MATCH
  console.log(match[0])
  
  // TRY FOR NEXT MATCH
  match = reg.exec(str);
  
}
...