Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.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 如何使preg_match_all与尖括号匹配?_Php_Regex_Preg Match All - Fatal编程技术网

Php 如何使preg_match_all与尖括号匹配?

Php 如何使preg_match_all与尖括号匹配?,php,regex,preg-match-all,Php,Regex,Preg Match All,我知道这可能是一个愚蠢的问题,但我一直在想如何让preg_匹配所有我想做的事情 我想匹配看起来像 另外,我想用一种懒惰的方式来做这件事,所以如果a有一个字符串 $myString = '<[someText]> blah blah blah <[someOtherText]> lala [doNotMatchThis] '; $myString='blahlahblahlala[doNotMatchThis]'; 我希望有两个匹配项:“”和“”,而不是一个匹配项“诸如

我知道这可能是一个愚蠢的问题,但我一直在想如何让preg_匹配所有我想做的事情

我想匹配看起来像 另外,我想用一种懒惰的方式来做这件事,所以如果a有一个字符串

$myString = '<[someText]> blah blah blah <[someOtherText]> lala [doNotMatchThis] ';
$myString='blahlahblahlala[doNotMatchThis]';
我希望有两个匹配项:“”和“”,而不是一个匹配项“诸如此类”

我试图将其与以下模式匹配

$pattern = '<\[.+?\]>';
$pattern='';
但出于某种原因,我得到了3个匹配项:[someText],[someOtherText]和[doNotMatchThis]

这让我相信,出于某种原因,尖括号会产生干扰,我觉得这很奇怪,因为它们不应该是元字符


我做错了什么?

您的模式需要分隔符(现在
被“视”为分隔符)

试试这个:

$pattern = '/<\[.+?\]>/';
$pattern='/';
以下是:

$myString = '<[someText]> blah blah blah <[someOtherText]> lala [doNotMatchThis] ';
$pattern = '/<\[.+?\]>/';
preg_match_all($pattern, $myString, $matches);
print_r($matches);
$myString='blahlahblahlala[doNotMatchThis]';
$pattern='/';
preg_match_all($pattern,$myString,$matches);
打印(匹配项);
将打印:

Array
(
    [0] => Array
        (
            [0] => <[someText]>
            [1] => <[someOtherText]>
        )

)
数组
(
[0]=>阵列
(
[0] => 
[1] => 
)
)

您的模式需要分隔符(现在
被“视”为分隔符)

试试这个:

$pattern = '/<\[.+?\]>/';
$pattern='/';
以下是:

$myString = '<[someText]> blah blah blah <[someOtherText]> lala [doNotMatchThis] ';
$pattern = '/<\[.+?\]>/';
preg_match_all($pattern, $myString, $matches);
print_r($matches);
$myString='blahlahblahlala[doNotMatchThis]';
$pattern='/';
preg_match_all($pattern,$myString,$matches);
打印(匹配项);
将打印:

Array
(
    [0] => Array
        (
            [0] => <[someText]>
            [1] => <[someOtherText]>
        )

)
数组
(
[0]=>阵列
(
[0] => 
[1] => 
)
)

您缺少正确的分隔符(在本例中,您的
被视为分隔符)

$pattern='~';

您缺少正确的分隔符(在本例中,您的
被视为分隔符)

$pattern='~';