비 연속 제로 날짜 시간 문자열 정규식에 0 추가

SaidbakR :

나는 다음과 같은 날짜 시간 문자열을 가지고 있는데 길이가 1 인 숫자와 일치하지 않는 2020-5-1 1:2패턴 (\W)(\d{1})사용했습니다 5,1,1,2. 이 데모 는 패턴 모든 경기에서 그룹 2에서 패턴을 잡는 데 성공했음을 보여줍니다.

Javascript의 String replace메소드를 사용 하여 datetime 샘플 문자열을로 설정하려고했습니다2020-05-01 01:02 . 에서 이 jsbin 다음 코드를 실행합니다 :

var txt = '2020-5-1 1:2'
var output = [];
output[0] = txt.replace(/(\W)(\d{1})/gi,'0$1');
output[1] = txt.replace(/(\W)(\d{1})/gi,'0$2');
console.log(output);
// The output: ["20200-0-0 0:", "202005010102"]

첫 번째 출력 항목 0에서 일치 항목 을 추가 하는 대신 예기치 않은 동작 이 발생하여 0! 이 문제를 어떻게 해결할 수 있습니까?

Wiktor Stribiżew :

대체 패턴에는 단일 플레이스 홀더 만 사용했지만 정규식 패턴에서는 캡처 그룹이 두 개인 서브 스트링 두 개를 소비했기 때문에 하나가 유실되었습니다.

0한 자릿수 앞에 추가하려면 다음을 사용할 수 있습니다

txt.replace(/\b\d\b/g,'0$&')
txt.replace(/(^|\D)(\d)(?!\d)/g,'$10$2')
txt.replace(/(?<!\d)\d(?!\d)/g,'0$&')     // With the ECMAScript2018+

여기에서 \b\d\bASCII 문자, 숫자 또는 앞에 오지 않는 숫자를 찾습니다 _. 대체는 0및 전체 일치 값 $&입니다.

(^|\D)(\d)(?!\d)문자열 패턴 캡처 시작 또는 숫자가 아닌 문자가 그룹 1로 시작된 다음 그룹 2에서 숫자가 캡처됩니다. 그런 다음 (?!\d)오른쪽에 즉시 숫자가 없는지 확인하십시오. 대체는 $10$2, 그룹 1 값 0및 그룹 2 값입니다.

(?<!\d)\d(?!\d)패턴이없는 다른 자리 묶인 자리수 일치하고 교체가 케이스 (1)와 동일하다.

JS 데모 :

var txt = '2020-5-1 1:2';
console.log( txt.replace(/\b\d\b/g,'0$&') )
console.log( txt.replace(/(^|\D)(\d)(?!\d)/g,'$10$2') )

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

루비 문자열을 날짜 시간 형식으로

비정상적인 시간 및 날짜 문자열을 JavaScript 날짜로 변환

MySQL-문자열에 시간대가있을 때 날짜 문자열을 실제 날짜로 변환

문자열에서 날짜와 시간을 추출하는 정규식

날짜 및 시간 문자열에서 시간 앞에 0을 추가합니다.

Excel VBA 날짜 / 시간 문자열에 1 시간 추가

SQLite 데이터베이스에 특정 문자열 형식으로 날짜 시간 추가

C #에서 global.aspx의 문자열과 비교할 날짜 시간 문제

날짜 시간에서 연속 날짜 문자열(20190327200000000W) 변환

Matlab에서 문자열 날짜를 날짜/시간 변수로 변환하는 데 문제가 있습니다.

날짜를 문자열로 가져오고 Javascript에서 시간 제거

날짜가 문자열 날짜 / 시간 형식 인 경우 날짜별로 그룹화하는 방법

파일의 마지막 수정 날짜 / 시간을 로컬 날짜 / 시간 문자열로 가져옵니다.

공백, 로컬 날짜가있는 날짜 / 시간 문자열

날짜(문자열)를 날짜/시간 형식으로 변환

문자열에서 날짜/시간으로 변환할 때 ValueError 시간 날짜가 형식과 일치하지 않는 문제를 해결하는 방법

Zing 차트에서 적절한 연속 날짜 / 시간 축이 아닌 문자열로 작동하는 날짜-시간 축

날짜 및 시간 문자열에 요일 추가

파이썬으로 날짜 시간 열에서 시간 간격 열 추가

시간대가있는 날짜 문자열을 신속하게 초로 변환

문자열 구성 요소가 있는 날짜를 파이썬에서 날짜 시간 형식으로 변환

비표준 구조로 문자열에서 날짜 추출

C# 날짜/시간 문자열인 속성으로 List<T> 정렬

날짜 문자열에서 0 제거

Pandas에서 분기 + 연도(날짜/시간)를 문자열로 변환

문자열 날짜에서 시간 및 시간대 제거

문자열을 시간 형식으로 변환하고 현재 날짜와 함께 추가-Shell / ksh

날짜 및 시간 문자열을 특정 형식의 날짜로 변환

날짜 문자열에 연도를 추가 하시겠습니까?

TOP 리스트

뜨겁다태그

보관