한국어

텍스트 및 일상 도구 · 텍스트 도구 키트

찾기 및 바꾸기의 정규식 캡처 그룹: $1, $2, $3로 날짜 재정렬

· 작동 방식

정규식 찾기 및 바꾸기 날짜

연-월-일에서 일-월-년 순서로 이동하는 3개의 캡처된 날짜 필드
원본 ToolAcre 벡터 일러스트레이션

괄호가 일치 부분을 캡처하는 방법과 $1, $2 및 $3가 고전적인 ISO-일-월-년 날짜 재작성 및 기타 몇 가지 재정렬을 사용하여 대체에서 이를 재사용하는 방법을 보여줍니다.

잘못된 순서의 400개 날짜 — 2024-01-02를 02/01/2024로 직접 편집하는 것이 캡처 그룹을 위한 작업인 이유

영국 워크시트에서 일이 예상되는 경우 스프레드시트 내보내기는 ISO 스타일의 연월일 순서로 400개의 날짜를 남길 수 있습니다./month/year. `2024-01-02`을 `02/01/2024`로 직접 편집하는 것은 느리지만 더 큰 위험은 불일치입니다. 건너뛴 행 하나나 치환된 숫자는 보고서가 배포될 때까지 살아남을 수 있습니다.

찾기 및 바꾸기는 모든 날짜를 관련 없는 400개의 문자열이 아닌 동일한 부분 배열로 처리할 수 있습니다. 정규 표현식은 연도, 월, 일을 식별하는 반면 대체 표현식은 캡처된 부분을 다른 순서로 다시 작성합니다. 원래 숫자가 재사용되므로 값을 다시 입력하는 대신 작업의 구조가 변경됩니다.

괄호가 포착하는 것 — 각 그룹이 왼쪽에서 오른쪽으로 숫자를 얻는 방법, \d{4} 및 \d{2}가 일치하는 것

괄호는 캡처 그룹을 생성합니다. `(\d{4})-(\d{2})-(\d{2})`에서 첫 번째 그룹은 4자리를 캡처하고, 두 번째 그룹은 2자리를 캡처하고, 세 번째 그룹은 2자리를 캡처합니다. `\d`은 이 JavaScript 패턴에서 숫자를 의미하고, `{4}` 및 `{2}`은 각 그룹 내에 필요한 정확한 반복 횟수를 지정합니다.

그룹은 엔진이 왼쪽에서 오른쪽으로 읽을 때 각 여는 괄호에서 숫자를 받습니다. `2024-01-02`의 경우 그룹 1은 `2024`, 그룹 2은 `01`, 그룹 3은 `02`입니다. 하이픈은 구분 기호와 일치하지만 괄호 밖에 있으므로 캡처된 값으로 유지되지 않습니다.

교체에 $1, $2 및 $3 사용 — 새 구분 기호를 사용하여 새 순서로 일치 항목을 다시 작성

대체 `$3/$2/$1`은 JavaScript에 세 번째 캡처, 슬래시, 두 번째 캡처, 또 다른 슬래시 및 첫 번째 캡처를 삽입하도록 요청합니다. 예제에 적용하면 해당 참조는 `02/01/2024`을 생성합니다. 달러 참조는 대체 지침이지 일치하는 날짜에도 나타나야 하는 텍스트가 아닙니다.

ToolAcre는 대체 문자열을 표준 JavaScript 문자열 대체 작업에 전달합니다. 해당 소스는 `$1`, `$2` 및 `$3`와 같은 번호가 매겨진 참조를 명시적으로 지원하며 검색 패턴은 전역적으로 컴파일됩니다. 이 전역 플래그는 첫 번째 일치 항목만 작성하는 대신 모든 일치 날짜를 한 번의 작업으로 다시 작성하는 이유입니다.

작업된 예 — (\d{4})-(\d{2})-(\d{2})가 $3/$2/$1,로 대체된 다음 행 수와 비교하여 대체 수를 확인합니다.

내보낸 열을 붙여넣고 Regex를 활성화한 다음 찾기에 `(\d{4})-(\d{2})-(\d{2})`를 입력하고 바꾸기에 `$3/$2/$1`을 입력합니다. 먼저 모두 바꾸기를 선택하면 일치 항목을 계산한 다음 다시 작성하므로 붙여넣은 전체 텍스트에서 날짜 모양 문자열이 몇 개 변경되었는지 결과가 보고됩니다.

결과를 스프레드시트에 다시 복사하기 전에 해당 숫자를 예상 행 수와 비교하십시오. 더 낮은 개수는 다른 형식의 공백이나 날짜를 가리킵니다. 개수가 높을수록 다른 곳에서도 유사한 텍스트가 일치함을 의미합니다. 이 도구에는 하나 바꾸기 미리 보기가 없으므로 개수 또는 출력에서 ​​지나치게 광범위한 패턴이 나타나는 경우 실행 취소 작업을 사용하십시오.

추가 재정렬 — 'Surname, Forename'을 'Forename Surname'으로 변경하고 2열 목록의 열을 교체합니다.

동일한 원리로 각 줄에 쉼표가 하나 포함되어 있으면 `Surname, Forename`을 `Forename Surname`로 변경할 수 있습니다. `([^,]+), ([^\r\n]+)`를 찾아 `$2 $1`로 바꿉니다. 여기서 각 그룹은 고정된 자릿수를 가정하는 대신 알려진 구분 기호의 한쪽에 있는 텍스트를 캡처합니다.

2열 교환은 광범위한 개요 표현에도 불구하고 기본 제공 테이블 작업이 아닙니다. 붙여넣은 텍스트에 신뢰할 수 있는 구분 기호가 있고 패턴이 줄 경계를 안전하게 설명하는 경우에만 작동합니다. 이름 안의 쉼표, 누락된 필드 또는 일관되지 않은 탭은 대량 교체를 신뢰할 수 있으려면 먼저 정리하거나 보다 정확한 패턴이 필요합니다.

더 많은 재정렬은 입력에 신뢰할 수 있는 구분 기호가 있는 경우에만 작동합니다.

패턴의 점은 거의 모든 문자를 의미하므로 `(\d{4}).(\d{2}).(\d{2})`로 작성된 날짜 패턴은 필드 사이에 슬래시, 공백 또는 문자도 허용합니다. 리터럴 점을 `\.`로 이스케이프하고 다른 메타 문자가 일치해야 하는 경우 이스케이프합니다. 유효하지 않은 괄호 또는 완료되지 않은 괄호는 텍스트를 변경하지 않고 보고됩니다.

그룹 번호 지정은 0이 아닌 1에서 시작됩니다. 달러 기호에는 특별한 대체 의미도 있습니다. `$&`는 전체 일치 항목을 삽입하고 `$$`는 하나의 리터럴 달러 기호를 생성합니다. ToolAcre는 검색 측면만 이스케이프하기 때문에 정규식 모드가 꺼져 있는 경우에도 이 동작이 적용됩니다. JavaScript가 처리하기 전에는 대체 문자열을 이스케이프하지 않습니다.

여기서 다루지 않는 내용 — 조회 테이블이 필요한 명명된 그룹, 뒤돌아보기 및 월 이름

번호가 매겨진 그룹은 일치 항목에 이미 존재하는 텍스트를 다시 정렬할 수 있지만 `Jan`을 `01`로 변환할 수는 없습니다. 순서를 바꾸는 대신 조회가 필요하기 때문입니다. 또한 이 기사에서는 이름이 지정된 그룹이나 LookBehind에 의존하지 않습니다. 그 유용성과 브라우저 지원에는 이 간단한 내보내기 정리와 다른 선택 세트가 포함됩니다.

날짜 표현식은 달력 진실이 아닌 형태를 확인합니다. 두 자리 숫자가 각각의 작은 그룹을 만족시키기 때문에 `2024-99-88`과 일치합니다. 정확성이 중요한 경우 스프레드시트 또는 소스 시스템에서 날짜를 확인하세요. 찾기 및 바꾸기는 캡처된 각 월과 날짜가 유효한지 증명하는 것이 아니라 일관된 형식을 지정하는 데 적합합니다.

요점 — 하나의 패턴, 하나의 교체, 모든 행이 텍스트 도구 키트에서 한 번에 수정되고 결과가 예상한 것과 다를 경우 실행 취소됩니다.

캡처 그룹은 일치하는 문자열 하나를 재사용 가능한 조각으로 바꿉니다. 균일한 날짜 열의 경우 세 그룹은 원래 연도, 월, 일을 유지하고 `$3/$2/$1`는 이를 영국 순서로 배치합니다. 전역 검색은 모든 일치 항목을 처리하고 보고된 개수를 통해 변경하려는 행 수를 즉시 확인할 수 있습니다.

워크플로를 검토 가능하게 유지하세요. 내보내기 사본을 보관하고, 이에 맞는 가장 좁은 패턴을 사용하고, 개수를 비교하고, 여러 결과를 검사하고, 증거가 기대와 일치하지 않으면 실행을 취소하세요. 범위가 적절한 하나의 교체를 사용하면 모든 숫자 모양의 값이 자동으로 유효한 날짜인 것처럼 가장하지 않고도 반복적인 편집을 제거할 수 있습니다.