Initial commit to new repository
This commit is contained in:
86
dist/AxCopilot/skills/regex-helper.skill.md
vendored
Normal file
86
dist/AxCopilot/skills/regex-helper.skill.md
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
name: regex-helper
|
||||
label: 정규식 도우미
|
||||
description: 정규식 패턴을 생성하고, 기존 패턴을 해석하며, 테스트 케이스로 검증합니다.
|
||||
icon: \uE8FD
|
||||
tabs: code
|
||||
allowed-tools:
|
||||
- regex_tool
|
||||
- clipboard_tool
|
||||
- file_read
|
||||
---
|
||||
|
||||
사용자의 요구에 맞는 정규식 패턴을 작성하거나, 기존 패턴을 해석하고 테스트하세요.
|
||||
|
||||
## 작업 절차
|
||||
|
||||
1. **요구사항 파악**: 사용자의 요청 유형을 판별
|
||||
- **패턴 생성**: "이메일 주소를 찾는 정규식 만들어줘"
|
||||
- **패턴 해석**: "이 정규식이 무슨 뜻이야? `^[\w.-]+@[\w.-]+\.\w+$`"
|
||||
- **패턴 테스트**: "이 패턴이 이 문자열에 매칭되는지 확인해줘"
|
||||
2. **패턴 작성 또는 분석**:
|
||||
- 생성: 요구사항을 분석하여 정규식 패턴 작성
|
||||
- 해석: 패턴을 구성 요소별로 분해하여 설명
|
||||
3. **테스트 수행**: regex_tool로 패턴을 테스트 케이스에 적용
|
||||
- 매칭되어야 할 문자열 (positive cases)
|
||||
- 매칭되지 않아야 할 문자열 (negative cases)
|
||||
4. **결과 설명**: 매칭 결과와 캡처 그룹을 상세히 설명
|
||||
5. **최적화 제안**: 성능 또는 가독성 개선이 가능하면 대안 제시
|
||||
|
||||
## 패턴 생성 가이드
|
||||
|
||||
### 자주 사용되는 패턴
|
||||
| 용도 | 패턴 | 설명 |
|
||||
|------|------|------|
|
||||
| 이메일 | `[\w.-]+@[\w.-]+\.\w{2,}` | 기본 이메일 형식 |
|
||||
| 전화번호 (한국) | `0\d{1,2}-\d{3,4}-\d{4}` | 010-1234-5678 형식 |
|
||||
| 날짜 (YYYY-MM-DD) | `\d{4}-(?:0[1-9]\|1[0-2])-(?:0[1-9]\|[12]\d\|3[01])` | ISO 날짜 형식 |
|
||||
| IP 주소 | `(?:\d{1,3}\.){3}\d{1,3}` | IPv4 기본 |
|
||||
| URL | `https?://[\w.-]+(?:/[\w./?#&=-]*)?` | HTTP/HTTPS URL |
|
||||
| 한글만 | `[가-힣]+` | 한글 문자 |
|
||||
| 사업자등록번호 | `\d{3}-\d{2}-\d{5}` | 123-45-67890 형식 |
|
||||
|
||||
### 패턴 해석 형식
|
||||
패턴을 해석할 때는 다음 구조로 설명하세요:
|
||||
```
|
||||
패턴: ^(\d{3})-(\d{2})-(\d{5})$
|
||||
해석:
|
||||
^ → 문자열 시작
|
||||
(\d{3}) → 캡처 그룹 1: 숫자 3자리
|
||||
- → 하이픈 (리터럴)
|
||||
(\d{2}) → 캡처 그룹 2: 숫자 2자리
|
||||
- → 하이픈 (리터럴)
|
||||
(\d{5}) → 캡처 그룹 3: 숫자 5자리
|
||||
$ → 문자열 끝
|
||||
```
|
||||
|
||||
## 테스트 형식
|
||||
테스트 결과는 다음 형식으로 표시하세요:
|
||||
```
|
||||
패턴: \d{3}-\d{2}-\d{5}
|
||||
|
||||
✅ 매칭 성공:
|
||||
"123-45-67890" → 전체 매칭: "123-45-67890"
|
||||
"사업자번호: 123-45-67890입니다" → 부분 매칭: "123-45-67890"
|
||||
|
||||
❌ 매칭 실패:
|
||||
"12-345-67890" → 형식 불일치
|
||||
"abc-de-fghij" → 숫자가 아닌 문자
|
||||
```
|
||||
|
||||
## 플래그 안내
|
||||
| 플래그 | 설명 |
|
||||
|--------|------|
|
||||
| `i` | 대소문자 무시 |
|
||||
| `m` | 멀티라인 (^$가 각 줄에 적용) |
|
||||
| `s` | 점(.)이 줄바꿈도 매칭 |
|
||||
| `g` | 전역 검색 (모든 매칭) |
|
||||
|
||||
## 규칙
|
||||
- 패턴 생성 시 positive/negative 테스트 케이스를 반드시 포함
|
||||
- 복잡한 패턴은 주석이 포함된 확장 모드(`x`)로 설명
|
||||
- 캡처 그룹이 있으면 각 그룹의 의미를 설명
|
||||
- 성능에 민감한 경우 탐욕적/게으른 수량자 선택 이유를 설명
|
||||
- 최종 패턴은 clipboard_tool로 클립보드에 복사
|
||||
|
||||
한국어로 안내하세요.
|
||||
Reference in New Issue
Block a user