首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从其他RegEx创建RegEx

从其他RegEx创建RegEx
EN

Stack Overflow用户
提问于 2016-08-11 10:44:57
回答 1查看 24关注 0票数 0

我真的很喜欢正则表达式。我想知道这类事情是否可以在JavaScript中完成。

想象一下,您想要匹配foo和bar这两个单词,但只在它们后面跟着"?“或者"!“我知道这个简单的例子可以用x(?=y)来完成,但我在这里的目的是知道您是否可以将一个RegEx放在另一个RegEx中,因为这对于更困难的场景来说是很好的。

我的意思是这样的:

代码语言:javascript
复制
var regex1 = /foo|bar/;
var regex2 = /{regex1}[\?\!]/;

这将简化非常复杂的正则表达式,并使某些模式可以重用,而不必每次需要时都编写相同的模式。如果这有意义的话,它将类似于一个RegEx变量。

有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-11 10:48:20

使用RegExp构造函数。

代码语言:javascript
复制
new RegExp('(?:' + regex1.source + ')[?!]')

regex1.source将把实际的正则表达式作为字符串,而不需要分隔符和标志,然后可以将这些分隔符和标志传递给RegExp构造函数来创建新的正则表达式。

另外,请注意,在字符类中使用时,不需要转义?!

代码语言:javascript
复制
var regex1 = /foo|bar/;
var regex = new RegExp('(?:' + regex1.source + ')[?!]')
console.log(regex);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38894200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档