繁体   English   中英

PHP-查找两个正则表达式之间的子字符串

[英]PHP - Find substrings between two regex expressions

我需要一个函数,该函数返回匹配任何内容的正则表达式与定界符之间的所有子字符串。

$str = "{random_one}[SUBSTRING1] blah blah blah {random_two}[SUBSTRING2] blah blah blah{random_one}[SUBSTRING3]";

$resultingArray = getSubstrings($str)

$resultingArray should result in:
array(
    [0]: "SUBSTRING1",
    [1]: "SUBSTRING2",
    [2]: "SUBSTRING3"
)

我一直在用正则表达式弄乱,没有运气。 任何帮助将不胜感激!

您可以使用以下正则表达式来实现:

/{.+?}\[(.+?)\]/i

细节

{.+?}   # anything between curly brackets, one or more times, ungreedily
\[      # a bracket, literally
(.+?)   # anything one or more times, ungreedily. This is your capturing group - what you're after
\]      # close bracket, literally
i       # flag for case insensitivity

在PHP中,它看起来像这样:

<?php
$string = "{random_one}[SUBSTRING1] blah [SUBSTRINGX] blah blah {random_two}[SUBSTRING2] blah blah blah{random_one}[SUBSTRING3]";
preg_match_all("/{.+?}\[(.+?)\]/i", $string, $matches);
var_dump($matches[1]);

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM