多个正则表达式可以合并嘛?

比如我有四个合法的正则表达式ABCD,为了优化性能,可以合并为一个图结构嘛?如果可以,能在文本匹配成功的时候,返回匹配的是ABCD中的哪个嘛?
关注者
2
被浏览
2,716
登录后你可以
不限量看优质回答 私信答主深度交流 精彩内容一键收藏

多个正则表达式可以使用'|'符号合并为一个正则表达式,表示匹配其中任意一个正则表达式。例如,假设我们有两个正则表达式,分别匹配以 .jpg 和 .png 结尾的文件:


```javascript

var regex1 = /\.jpg$/;

var regex2 = /\.png$/;

```


使用 '|' 符号将两个正则表达式合并起来:


```javascript

var regex = /\.jpg$|\.png$/;

```


上述正则表达式表示匹配以 .jpg 或 .png 结尾的文件名。当我们对一个文件名进行匹配时,可以直接使用合并后的正则表达式:


```javascript

var filename = 'test.jpg';

var isMatch = filename.match(/\.jpg$|\.png$/);

console.log(isMatch); // ["jpg", index: 4, input: "test.jpg", groups: undefined]

```


在上述示例中,isMatch 会被赋值为匹配到的结果,即 ['jpg']

发布于 2023-04-18 15:07 ・IP 属地河南