正则表达式匹配第一次出现,直到最后一次匹配之间的所有时间

时间:2019-02-19 14:49:58

标签: javascript regex

我可能在想这是错误的方式。

生成的前三个(...)可以是任意数字。我只想捕获这些第一组项目,并允许用户在其自定义字符串中使用()

测试字符串

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

正则表达式

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

电流输出

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

所需的输出

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

2 个答案:

答案 0 :(得分:2)

您可以使用两种方法来做到这一点:

  1. 仅从数组中获取3个项目
  2. 为正则表达式\(([^ )]+)\)https://regex101.com/r/ZPdq35/1/)添加空间

答案 1 :(得分:0)

使用粘性选项/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);
}