正则匹配或者需要用括起来吗
时间: 2023-07-26 10:44:05 浏览: 67
使用括号将多个正则表达式组合成一个子表达式,可以实现更加复杂的匹配模式,也可以实现或操作。例如:
```javascript
var regex = /(hello|world)/gi;
var str = 'hello, world!';
var matches = str.match(regex); // 匹配结果为 ['hello', 'world', 'world']
```
在上面的例子中,使用括号将 "hello" 和 "world" 两个子表达式组合成了一个子表达式,匹配字符串中的 "hello" 或 "world",并且使用了 `g` 和 `i` 标记来表示全局匹配和忽略大小写。调用字符串的 match() 方法可以返回所有匹配的结果。
需要注意的是,使用括号将多个正则表达式组合成一个子表达式时,括号内的内容会被捕获并存储在匹配结果的数组中,可以通过数组索引来访问。如果不需要捕获括号内的内容,可以使用非捕获分组 `(?:...)`。例如:
```javascript
var regex = /(?:hello|world)/gi;
var str = 'hello, world!';
var matches = str.match(regex); // 匹配结果为 ['hello', 'world', 'world']
```
在上面的例子中,使用非捕获分组 `(?:...)` 将 "hello" 和 "world" 两个子表达式组合成了一个子表达式,匹配字符串中的 "hello" 或 "world",并且使用了 `g` 和 `i` 标记来表示全局匹配和忽略大小写。调用字符串的 match() 方法可以返回所有匹配的结果。由于使用了非捕获分组,匹配结果中不会保存括号内的内容。
阅读全文