我有一个正则表达式
\|\|(\d+)(?=\|\|(?:(?!\|\|\d+\|\|)[\s\S])*jambura)
Working Sample
有人可以帮我找到使用正则表达式的所有可能的组合
详细信息: 当前的正则表达式能够捕获最宽的匹配(在给定页面内),但无法捕获嵌入/子字符串模式 例如:正则表达式能够捕获 ||1||对于
||1||
Jam Jam jambura jadu tu sikh jambura
但无法捕获它
||1||
Jam Jam jambura
基本上我想编写一个模式,它应该能够找到给定单词出现的页码。因此,如果单词“jambura”在第 ||1|| 页上出现两次,我应该能够捕获 2 个匹配项。
任何帮助将不胜感激。
最佳答案
这对我有用
var str='||1|| Jam Jam jambura jadu tu sikh jambura';
reg = /(?!\|\|(\d+)\|\||jambura).+?jambura/g;
re = /(?![\|]+)\d+(?=[\|]+)/
alert('page '+str.match(re)+': '+str.match(reg).length+' matches');
<强> Try Fiddle
想法是首先匹配 \|\|\d+\|\|
,然后仅匹配 jumbara
。其实我花了半个晚上才找到解决方案,所以我不记得为什么我开始在这里使用 ?!
,但是它有效
关于Javascript 正则表达式模式捕获 - 所有可能的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17574721/