0

たとえば、テキストから内部のすべて(タグを含む)を切り取りたいです。

[url=http://example.com]something[/url]

しかし、1つの条件では、タグの内側に[url]タグがあります[img]。したがって、カットする最後の文:

[url=http://example.com]anything[img]something[/url]

誰か助けてもらえますか?正規表現が苦手ですか、それとももっと簡単な方法がありますか?

4

2 に答える 2

1

これはどう:

<?php

ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL | E_STRICT);

$testCases = array(
    'foo bar baz [url=http://example.com]anything[img]something[/url] foo bar baz',
    'foo bar baz [url=http://example.com]anythingsomething[/url] foo bar baz',
    'FOO BAR BAZ [URL=HTTP://EXAMPLE.COM]ANYTHING[IMG]SOMETHING[/URL] FOO BAR BAZ',
    'FOO BAR BAZ [URL=HTTP://EXAMPLE.COM]ANYTHINGSOMETHING[/URL] FOO BAR BAZ',
);

foreach ($testCases as $testCase) {
    $results[] = preg_replace("{\[url(?!.*?\[img\].*?).*?\[/url\]}is", '', $testCase);
};

print_r($results);

?>
于 2010-09-14T00:16:33.213 に答える
0

これらのスクリプト行を試してみます

$subject = '[url=http]anything[imag]something[/url]';
$pattern = '@^\[url[^].]*\]{1}(.*)\[/url\]$@';
preg_match($pattern, $subject, $matches);
echo $matches[1]; //anything[imag]something

結果はあなたが望むものですか?

于 2010-09-10T18:46:54.267 に答える