регулярное выражение, чтобы соответствовать первому вхождению и всему, что находится между до последнего матча - PullRequest
0 голосов
/ 19 февраля 2019

Возможно, я думаю о неправильном пути.

Первые три (...) генерируются и могут быть любым числом.Я только хочу поймать этот первый набор элементов и позволить пользователю использовать () внутри своей пользовательской строки.

Test String

(374003) (C6-96738) (WR183186) R1|SALOON|DEFECTIVE|WiFiInfotainment|Hardware detects WIFI but unable to log in on the (JAMIE HUTBER) internet.:

Regex

/\(([^)]+)\)/g

Токовый выход

 ["(374003)", "(C6-96738)", "(WR183186)", "(JAMIE HUTBER)"]

Желаемый выход

 ["(374003)", "(C6-96738)", "(WR183186)"]

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Используя липкую опцию /y, вы можете использовать способность regEx для поиска всех вхождений ..

Это будет работать, если в JAMIE HUNTER и т. Д. Нет пробела.

напр.

const re = /\s*\(([^)]+)\)/y;
const str = "(374003) (C6-96738) (WR183186) R1|SALOON|DEFECTIVE|WiFiInfotainment|Hardware detects WIFI but unable to log in on the (JAMIE HUTBER) internet.:";

let m = re.exec(str);
while (m) {
  console.log(m[1]);
  m = re.exec(str);
}
0 голосов
/ 19 февраля 2019

Вы можете сделать это двумя способами:

  1. получить только 3 элемента из массива
  2. добавить место в регулярное выражение \(([^ )]+)\) (https://regex101.com/r/ZPdq35/1/)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...