0

PHPで正規表現を使用して、括弧のセットと括弧自体の間のテキストを削除する方法を知りたいのですが、括弧は異なる可能性があります...例:

[マイコンテンツ]

また

(私のコンテンツ]

また

{マイコンテンツ)

等々...

私が試してみました:

preg_replace("/\{.*\}/", " ", $title);
preg_replace("/\[.*\]/", " ", $title);
preg_replace("/\(.*\)/", " ", $title);

しかし、これは同じ括弧を削除するだけです..はい、括弧は2年生までネストできます..

4

2 に答える 2

1

[]を使用して文字セットを設定し、使用して文字セットを保持する必要があります()

print preg_replace("~([\[\{\(]).*?([\]\}\)])~", "\\1...\\2", 
        "[mycontent} a (mycontent] b {mycontent)");

出力:[...} a (...] b {...)

于 2013-02-03T15:39:40.367 に答える
0
$title = "[mycontent}outside(mycontent]outside{mycontent)";

$find = array(
    "/\{.*?\}/",
    "/\{.*?\]/",
    "/\{.*?\)/",
    "/\[.*?\}/",
    "/\[.*?\]/",
    "/\[.*?\)/",
    "/\(.*?\}/",
    "/\(.*?\]/",
    "/\(.*?\)/"
);
$replace = array(
    " ",
    " ",
    " ",
    " ",
    " ",
    " ",
    " ",
    " ",
    " "
);
$string = preg_replace($find, $replace, $title);

var_dump($string); // prints string(17) " outside outside "
于 2013-02-03T15:27:50.213 に答える