다음 문자열에서 날짜를 추출하려고하지만 아무 소용이 없습니다.
const strs = [
`X
March 17th 2011
`,
`X
2011
`,
`X
March
2011
`,
];
console.log(strs.map(s =>
s.match(/X\s+([a-zA-Z]+?\s*[a-zA-Z0-9]+)?\s*(\d+)/))
);
문제는 첫 번째 경기에 있습니다. 현재는
[
"X\n March 17",
"March",
"17"
]
그래야하지만
[
"X\n March 17th 2011",
"March",
"17th",
"2011"
]
어떤 도움을 주시면 감사하겠습니다.
당신이 사용할 수있는
/X(?:\s+([a-zA-Z]+))?(?:\s+([a-zA-Z0-9]+))?\s+(\d+)/g
regex 데모를 참조하십시오 . 세부 사항 :
X
- X
문자(?:\s+([a-zA-Z]+))?
-하나 이상의 공백 ( \s+
)과 하나 이상의 ASCII 문자 (그룹 1로 캡처 됨) 의 선택적 시퀀스(?:\s+([a-zA-Z0-9]+))?
-하나 이상의 공백 ( \s+
)과 하나 이상의 ASCII 문자 또는 숫자 (그룹 2에 캡처 됨) 의 선택적 시퀀스\s+
-1 개 이상의 공백(\d+)
-그룹 3 : 하나 이상의 숫자아래 JavaScript 데모를 참조하십시오.
const strs = ["X\n March 17th 2011\n", "X\n 2011\n", "X\n March\n 2011\n"];
const rx = /X(?:\s+([a-zA-Z]+))?(?:\s+([a-zA-Z0-9]+))?\s+(\d+)/;
strs.forEach(s =>
console.log( s.match(rx) )
);
또는 전체 값 얻기 :
const strs = ["X\n March 17th 2011\n", "X\n 2011\n", "X\n March\n 2011\n"];
const rx = /X(?:\s+[a-zA-Z]+)?(?:\s+[a-zA-Z0-9]+)?\s+\d+/g;
strs.forEach(s =>
console.log( s.match(rx).map(x => x.substr(1).trim().replace(/\s+/g, ' ') ))
);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다