Memo/기타

[RegularExp] 정규식 그룹 캡처 + REPLACE

cassan 2022. 9. 24. 20:34

옛날에 10만줄 짜리 CSV 파일들의 특정문자열(A-Z-X-A)를 변경문자열(A-B-C-A-D)로 변경하는 작업을 했었는데
정규식이란 것만 알았지 이름이 뭔지를 몰랐었다.
그래서 발생한 문제점.. 정확히 어떻게 썼는지 확인하고 싶어도 레퍼런스 검색을 할 수 없음..

하지만 이번에 작업하면서 명칭을 찾게 되어 기쁜 마음에 기록해놓는다


<td><c:out value="${selection.CATEGORY_04}"/></td>

위 문자열을 아래 와 같이 변경하려 한다.

<c:out value="${selection.CATEGORY_04 eq null ? 0 : selection.CATEGORY_04}" /></td>

반복되는 문자열 selection.CATEGORY_04 을 A 라 할때, A-B-A 형태로 변경하면 된다

그룹-명칭으로 캡처 + REPLACE 

find : (?<this>selection.[A-Z_]+[0-9]+)
replace : ${this} eq null ? 0 : ${this}

※ 여기서 this 는 js 의 객체가 아니라 고유명사로 사용.

이런식의 네이밍은 하면 안된다

 

그룹-순서로 캡처 + REPLACE 

find : (selection.[A-Z_]+[0-9]+)
replace : $1 eq null ? 0 : $1

 

참고

https://learn.microsoft.com/ko-kr/dotnet/standard/base-types/grouping-constructs-in-regular-expressions

https://dogcowking.tistory.com/m/230

반응형