Javascript 正则表达式模式捕获 - 所有可能的组合

标签 javascript regex

我有一个正则表达式

\|\|(\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/

相关文章:

javascript - 如何处理 Node + Ember 应用程序中的路由?

javascript - 在选择标签中仅显示一次选项

javascript - 手机上的摄像头控制不适用于 babylonjs vr

javascript - JavaScript 权威指南中的对象合并函数与扩展函数完全一样吗?

正则表达式返回一组中的所有匹配项

javascript - 文本标签隐藏在圆圈 d3 中

regex - 正则表达式删除所有新行的起始编号

javascript - 无法使正则表达式删除第一个空格字符

mysql - 在 MySQL 列中正确选择实际的非字母数字字符

regex - 用于检查文件的第一行然后打印其余部分的 AWK 脚本