Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中查找字母块中的特定字母集_Php_String - Fatal编程技术网

如何在php中查找字母块中的特定字母集

如何在php中查找字母块中的特定字母集,php,string,Php,String,我需要从一组字母中提取一些单词 范例 “gkshgksguvjvjvjgvjgvjgvggvggvggvgggku堆栈ksbegkbeskbgksebgggggggbbbbbbbbbbbbbbgjvjvvgjvgvgvgjvgvgvgjvgvgvgvgjvgjvgvgvgvgjvgvggvggvggvggvgggvgggvggvgggvgvgvgvgvgvgggggvgggggvggvggggg 我想提取“堆栈ksbegkbeskbgksebgkbb溢出” 从上述文本中 堆栈和溢出之间的字母数可

我需要从一组字母中提取一些单词

范例

“gkshgksguvjvjvjgvjgvjgvggvggvggvgggku堆栈ksbegkbeskbgksebgggggggbbbbbbbbbbbbbbgjvjvvgjvgvgvgjvgvgvgjvgvgvgvgjvgjvgvgvgvgjvgvggvggvggvggvgggvgggvggvgggvgvgvgvgvgvgggggvgggggvggvggggg

  • 我想提取“堆栈ksbegkbeskbgksebgkbb溢出
    从上述文本中

  • 堆栈溢出之间的字母数可以不同

  • 如果集合中有多个satcks和overflows 属于 字母,我想找到它们之间的字母 两个单词(并将它们添加到数组中)

    每次,堆栈和溢出之间的字母数都可以更改

  • 更正:添加了
    U
    修饰符,使
    *
    不贪婪

    常规的express
    /STACK(.*)OVERFLOW/U
    具有
    U
    修饰符,使
    *
    非贪婪,这意味着它应该匹配最小数量的字符(如果没有
    U
    *
    将贪婪并尽可能多地匹配(直到最后一次“溢出”)

    $matches
    将是一个数组。
    $matches[0]
    是一个包含所有完整匹配项的数组。
    $matches[1]
    包含第一组括号中所有子部分的数组


    注意:
    U
    修饰符使所有的中继器都非贪婪。如果你想混合贪婪和非贪婪,你可以做
    *?
    使其中一个非贪婪。上面的正则表达式将变成
    /STACK(.*)溢出/“

    可能重复@Winter我需要一个php解决方案,不仅仅是为了了解Regexoops,对不起,我忘了在regex模式中添加“ungreediness”。上面的答案已经更正。非常感谢!!!它真的有效:)我们需要更多像你这样的人在这个星球上:)
    $theBlob = "abcSTACKmmmOVERFLOWxyz...";
    preg_match_all('/STACK(.*)OVERFLOW/U', $theBlob, $matches);
    assert( $matches[0][0] === 'STACKmmmOVERFLOW' );
    assert( $matches[1][0] === 'mmm' );