JavaScript / regex:括弧内のテキストを削除します


回答:


207
"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, "");

結果:

"Hello, this is Mike"

14
.replace()は文字列自体を変更せず、新しい文字列のみを返すことに注意してください。したがって、変数を変更したものと等しくなるように設定する必要があります。
Ayub 2013年

2
括弧が文字列の中央にある場合、上記の正規表現はそれらの周りのすべての空白を削除します。これはおそらく良くありません。
Nigel Johnson、

1
これを逆にする方法は?私(example)だけが欲しい
カルテ

次のような場合は機能しません:少し混乱している(上(右))が発生します:)
TigrouMeow

26
var str = "Hello, this is Mike (example)";

alert(str.replace(/\s*\(.*?\)\s*/g, ''));

また、括弧の前後の余分な空白も置き換えられます。


6

試す / \([\s\S]*?\)/g

どこ

(スペース)文字(スペース)に文字通り一致します

\(文字と(文字通り一致します

[\S\s]任意の文字に\S一致(空白以外の文字に \s一致し、空白文字に一致)

*? ゼロと無制限の時間の間で一致

\)文字と)文字通り一致します

g グローバルに一致

コード例:

var str = "Hello, this is Mike (example)";
str = str.replace(/ \([\s\S]*?\)/g, '');
console.log(str);
.as-console-wrapper {top: 0}


1

私はこのバージョンがすべての場合に最も適していると思いました。すべての空白を削除するわけではありません。

例: "a(test)b"-> "a b"

"Hello, this is Mike (example)".replace(/ *\([^)]*\) */g, " ").trim(); "Hello, this is (example) Mike ".replace(/ *\([^)]*\) */g, " ").trim();


注意してくださいtrim普遍的にサポートされていません:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / ...
Christophe Roussy

「this(example(here)which)is good」で失敗します。すなわち。ネストされた括弧!
Marc

1

ネストされた括弧内のテキストも削除する必要がある場合は、次のようにします。

        var prevStr;
        do {
            prevStr = str;
            str = str.replace(/\([^\)\(]*\)/, "");
        } while (prevStr != str);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.