我有以下正则表达式:
/(1+(?=0|$))|(0+(?=1|$))/
我在只由0
和1
字符组成的字符串上使用它,将字符串分成0
s和1
s组。在这里,我的正则表达式匹配1
s组,然后是0
或行尾1(?=0 |$)
或0
s组,然后是1
或行尾0(?=1 124$)
。
> '001100011101'.split(/(1+(?=0|$))|(0+(?=1|$))/).filter(c=>!!c)
[ '00', '11', '000', '111', '0', '1' ]
我想知道我是否可以使用类似于/([01])(?=[^$1]|$)/
的方法来匹配捕获组(([01])
)中的0或
1
)中的([01])然后不是捕获组中的
[^$1]
。这种语法显然不起作用,我不知道这样的事情是否可行。
那么有三件事需要考虑:
.拆分()
也会输出捕获的子字符串String.match()
,而正则表达式将需要一个全局标志你可以用
console.log('001100011101'.match(/([01])+?(?=(?!\1).|$)/g))
// Further simplified to
console.log('001100011101'.match(/([01])\1*/g))
如果您的字符串仅由0和1组成,并且您想匹配0和1的序列,则不需要任何组。
您可以匹配1个或多个零,或者使用交替匹配1个或多个1。
0+|1+
正则表达式演示
console.log('001100011101'.match(/0+|1+/g));
反向引用需要在字符集之外(字符集不接受这样的反向引用)。
在这个模式中,您还需要\1
,而不是$1
,我认为没有任何前瞻性的必要:
console.log(
'001100011101'.match(/([01])(?:\1)*/g)
);
问题内容: 据我所知,JavaScript中没有所谓的捕获组。获得类似功能的替代方法是什么? 问题答案: ECMAScript 2018将命名捕获组引入了JavaScript正则表达式中。 例: 如果您需要支持较旧的浏览器,则可以使用命名捕获组来处理普通(编号)捕获组,而只需要跟踪编号-如果捕获组中的捕获组顺序很麻烦,正则表达式更改。 我能想到的命名捕获组只有两个“结构”优点: 在某些正则表达式中
问题内容: 据我所知,MySQL不支持从正则表达式匹配中检索捕获组的值。我发现了一个服务器端扩展(lib_mysqludf_preg),它将添加此功能,但无法在我的环境中安装此扩展。 因此,我正在寻找一种方法来模拟将正则表达式匹配的一部分捕获为SQL查询中的一列。 我的数据如下所示(并且我无法更改服务器上的数据格式): 我正在寻找每行的最后4位数字。数字始终是值的最后一部分,并且始终由点分隔。以下
问题内容: 我想获取所有具有与某些正则表达式匹配的文本的div / links / ..的xpath计数。例如: 我希望能够致电: 并使其返回2。(当然,这是一个简单的示例,我想使用各种正则表达式) 这可能吗,怎么办? 问题答案: 使用允许您使用javascript 的协议。而javascript具有regexp:
在Python中,如何在非捕获组中捕获组?换句话说,如何重复包含捕获组的非捕获子模式? 例如,捕获导入字符串上的所有包名。例如,字符串: 导入熊猫、操作系统、系统 将返回“pandas”、“os”和“sys”。下面的模式捕获第一个包并到达第二个包: 从这里,我想重复捕获组并匹配以下字符的子模式,即。当我用一个非捕获组包围这个子模式并重复它时: 它不再捕捉里面的群体。
假设我有这个虚拟URL,我需要提取植物及其颜色作为 下面的I have正在按预期捕获我需要的元素,但是当我的URL中的植物少于4株时,它无法捕获任何东西。底部有一个指向regex测试员的链接,其中有示例代码和URL,您可以使用。 如何修改这个正则表达式,使其动态工作,从而在不需要静态URL结构的情况下捕获可用内容。现在,假设我最多只能捕获4株植物(8组) https://regex101.com/
问题内容: 假设我要使用SCAN功能扫描Redis中的集合。是否可以将正则表达式传递给MATCH? 问题答案: 不,是仅支持通配符的模式。