나는 "% d- % m- % Y"와 같은 문자열을 가지고 있습니다. 이러한 용어는 임의의 순서로 사용할 수 있으며 대시는 다른 문자열 (% x). "% d % m % Y"결과를 얻고 싶습니다. 내가 간단한 정규식 구운 나는 용어가 선택 할 경우 작동 솔기하지 않습니다 이 (크롬 콘솔 :임의의 용어와 임의의 순서로 (자바 스크립트 또는 자바)
"%d-%m-%Y HH:%i".replace(/.*?((%Y|%m|%d)?.*?(%Y|%m|%d)?.*?(%Y|%m|%d)?).*/, "$1 $2 $3 $4")
에서이 작업을 수행 I가이 (% Y | %의 m | % d 개) ? 옵션으로 3 번 *.? (욕심이 아닌 것).
나는 위의 코드를 실행하면 출력은 다음과 같습니다
"%d %d "
내가 (%의 Y | %의 m | % d 개)에서 선택 마커를 제거하면? 표현식이 예상대로 작동합니다. 해당 용어가 선택 사항이어야합니다. 누군가가 선택 마커로 어떤 일이 일어나는지 설명 할 수 있습니까?이 유형의 정규식을 수행 할 수 있습니까?
선택적으로 당신은''% d- % m ''도 합법적일까요? 나는''% d- % d "'가 합법적이지 않으므로 정규 표현식이 올바른 도구가 아니라고 말하고 싶습니다. 자바의 정규식 엔진 (또는 다른 어떤 것)으로도 이것을 할 수 있을지 확신하지 못합니다. 그리고 그것은 꽤 어려울 수도 있습니다. – Thomas
예, "% d- % m"은 (는) 합법적이며 "% d- % d"이 (가) 발생할 수 없습니다. –
그래서 3 개가 필요하지만 한 번만, 어떤 순서로든 중간에 무엇이든 필요합니까? – Thomas