program tip

자바 스크립트 / 정규식 : 괄호 사이의 텍스트 제거

radiobox 2020. 9. 18. 08:00
반응형

자바 스크립트 / 정규식 : 괄호 사이의 텍스트 제거


바꿀 수 있을까

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);

참고 URL : https://stackoverflow.com/questions/4292468/javascript-regex-remove-text-between-parentheses

반응형