JavaScript / 정규식 : 괄호 사이의 텍스트 제거 바꿀 수 있을까 Hello, this is Mike (example) 에 Hello,

바꿀 수 있을까

Hello, this is Mike (example)

Hello, this is Mike

Regex에서 JavaScript를 사용하십니까?



답변

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

결과:

"Hello, this is Mike"


답변

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

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

또한 괄호 앞뒤의 여분의 공백을 대체합니다.


답변

시험 / \([\s\S]*?\)/g

어디

(공백)은 문자 (공백)와 문자 그대로 일치합니다.

\(문자 (그대로 문자 와 일치

[\S\s]모든 문자 \S와 일치 ( 비 공백 문자와 \s일치하고 모든 공백 문자 와
일치)

*? 0 번과 무제한 시간 사이의 일치

\)문자 )그대로 문자 와 일치

g 전 세계적으로 일치

코드 예 :

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


답변

이 버전이 모든 경우에 가장 적합하다는 것을 알았습니다. 모든 공백을 제거하지는 않습니다.

예 : “a (테스트) b”-> “a b”

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


답변

중첩 된 괄호 안의 텍스트도 제거해야하는 경우 :

        var prevStr;
        do {
            prevStr = str;
            str = str.replace(/\([^\)\(]*\)/, "");
        } while (prevStr != str);


답변