🚀 Programming/JavaScript+C#

[JavaScript] 정규식 그룹화, 괄호안의 값 가져오기, 패턴 변수에 저장해 쓰기

jishushu 2025. 2. 24. 16:30
728x90
반응형

1. 그룹화해서 사용

temp='20240301_1557'

temp.replace('_',' ').replace(/(.{4})(.{2})(.{2})(.{3})/,'$1-$2-$3$4:')

=> 2024-03-01 15:57

 

2. 문자열에서 괄호 안의 내용을 추출

\(([^)]+)\)

- **`\(`**: 여는 괄호 `(`를 찾습니다. 괄호는 정규 표현식에서 특별한 의미를 가지므로, 이스케이프 문자 `\`를 사용하여 문자 그대로의 괄호를 찾습니다.
- **`([^)]+)`**: 여는 괄호와 닫는 괄호 사이의 내용을 캡처하는 부분입니다.
  - **`[^)]+`**: 닫는 괄호 `)`가 아닌 문자들로 이루어진 하나 이상의 문자(`+`)를 찾습니다.
  - **`([^)]+)`**: 괄호 안의 내용을 캡처 그룹으로 지정합니다.
- **`\)`**: 닫는 괄호 `)`를 찾습니다. 마찬가지로 이스케이프 문자 `\`를 사용합니다.

//예시
// 원본 문자열
let str = "20241656 (결산분)";

// 정규 표현식
let regex = /\(([^)]+)\)/;

// 정규 표현식 적용
let match = str.match(regex);

if (match) {
    // 첫 번째 캡처 그룹이 괄호 안의 내용입니다.
    console.log(match[1]); // "결산분"
} else {
    console.log("No match found.");
}

 

3. 패턴을 변수에 저장해서 사용

this.v_Pattern=['특별자치도|도 ','특별시|특별자치시|광역시|시 ','구 |군 ','동\\d*.?\\s','읍 ','면 ','\\d+(-\\d+)?'];
this.v_replace= new RegExp('토지|임야','g');
for(var i=0;i<this.v_addrData.length;i++){
    var newAddr='';
    var oldAddr=this.v_addrData[i][0];
    oldAddr=oldAddr.replace(/\d+(.\d+)?㎡/g,'');
    oldAddr=oldAddr.replace(this.v_replace,'');
    var loop=0;
    if(oldAddr.includes('    ')){
         loop=oldAddr.split('    ').length*this.v_Pattern.length
        }else{
            loop=this.v_Pattern.length
                        }
    for(var j=0;j<loop;j++){
    var regex = new RegExp(this.v_Pattern[j%this.v_Pattern.length], 'g');
    if(!(oldAddr.match(regex))==false){
    var area=oldAddr.match(regex)[0];    
    newAddr+=oldAddr.split(area)[0]+area;
    oldAddr=oldAddr.replace(oldAddr.split(area)[0]+area,'');
    }
}
this.v_addrData[i][1]=newAddr;

}
반응형