php - 查找包含增加的 1 的子字符串

标签 php regex pcre

我有一个仅由01组成的字符串,我需要找到一个以一个1开头的子字符串,并且以另一级联的 1 结束,每次匹配 1 连续的 1 增加一个。

例如,0101101011101 会捕获 1011010111

我试过了

(?:(1(?(1)\1)).*?)+

但是 it doesn't work .

<头>
输入 输出
01 0[(1)] 1
1001111 [(1)00(11)]11 10011
010011111 0[(1)00(11)(111)] 10011111
0100111110001110 0[(1)00(11)(111)]0001110 10011111
0100111011001110 0[(1)00(11)101100(111)]0 10011101100111
0100111110011110 0[(1)00(11)(111)00(1111)]0 10011111001111

最佳答案

这应该可行:

^.*?\K(?:((?(1)\1)1).*?)*(?1)

https://regex101.com/r/dam2qA/1/

关于php - 查找包含增加的 1 的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67816658/

相关文章:

php - 数学字母数字符号的正则表达式

php - 在php中将.csv文件导入mysql

PHP 警告 : Module 'mcrypt' already loaded

c# - 作为匹配的一部分返回常量值的正则表达式

javascript - JS 中的命名组和 OR 运算符

正则表达式仅在字符序列之后匹配出现

php - 这是 flash、php 和 mysql 中的错误登录算法吗?

php - 调用未定义函数 Illuminate\Filesystem\symlink()

c# - 如何检查命名捕获组是否存在?

regex - 惰性可选量词应该如何表现?