Php 如何使preg_match_all与尖括号匹配?
我知道这可能是一个愚蠢的问题,但我一直在想如何让preg_匹配所有我想做的事情 我想匹配看起来像 另外,我想用一种懒惰的方式来做这件事,所以如果a有一个字符串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]'; 我希望有两个匹配项:“”和“”,而不是一个匹配项“诸如
$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='~';