단순한 ASCII 식별자 모양
문자나 밑줄로 시작하고 뒤에 문자, 숫자, 밑줄이 이어지는 제한된 식별자는 다음처럼 찾을 수 있어.
[a-zA-Z_]\w*
이름 규칙을 더 좁히면 패턴도 달라져.
- camelCase:
[a-z][a-zA-Z0-9]* - snake_case:
[a-z][a-z0-9_]* - SCREAMING_SNAKE:
[A-Z][A-Z0-9_]* - PascalCase:
[A-Z][a-zA-Z0-9]* - kebab-case:
[a-z][a-z0-9-]*
실제 언어의 식별자 규칙은 유니코드와 예약어까지 포함할 수 있으므로, 이 패턴들은 이름 모양을 제한하는 예시로만 써.
주석처럼 보이는 구간 찾기
C 계열 한 줄 주석은 //[^\n]*, 셸이나 Python의 한 줄 주석은 #[^\n]*로 후보를 찾을 수 있어. 여러 줄 주석의 단순한 형태는 /\*[\s\S]*?\*/로 줄바꿈까지 건널 수 있지.
하지만 문자열 안의 //나 URL 조각의 #도 같은 모양이야. 실제 소스 코드에서 주석을 정확히 구분하려면 토크나이저나 파서가 문자열 문맥까지 판단해야 해.
코드 변환은 변경 규모에 맞는 도구를 골라
함수 이름이나 단순한 import처럼 문맥이 제한된 일회성 변경은 VS Code의 정규식 찾기·바꾸기나 sed로 처리할 수 있어. 문법 구조를 이해해야 하는 리팩터링이라면 Python의 libcst, JavaScript의 jscodeshift 같은 AST 도구가 더 안전해.