분할 September 1997, such and such
이 같은
(?<=\d{4}),\s*
이 출력을 얻어야합니다
September 1997
such and such
공백을 추가 할 수도 있습니다.
(?<=\d{4})\s*,\s*
가변성과 트리밍을 위해.
-------------------이것은 한 번만 분할되지만 원하는 것 같습니다.
str = "September 1997, such and such"
p str.match(/(.*?)([0-9]{4}.*)/)
# => #<MatchData "September 1997, such and such" 1:"September " 2:"1997, such and such">
이것은 여러 분할을 수행합니다 ( \b
p11y 덕분에 포함하도록 편집 됨)
p str.split(/(?=\b\d{4}\b)/)
# => ["September ", "1997, such and such"]
-------------------긍정적 인 미리보기를 사용하면 빈 문자열과 소수 ( \d
)를 분할 할 수 있습니다 . 이 경우 빈 문자열 뒤에 소수가 와야하지만 소수는 분할의 일부가되지 않습니다.
"September 1997, such and such".split(/(?=\d)/)
#=> ["September ", "1997, such and such"]
정확히 4 자리 소수와 일치해야하는 경우 수량 자 ( {n}
)를 사용할 수 있습니다.
"September 1997, such and such".split(/(?=\d{4})/)
#=> ["September ", "1997, such and such"]
사이의 공백을 없애려면 \s+
빈 문자열 대신 하나 이상의 공백 문자 ( )를 추가로 캡처 할 수 있습니다 .
"September 1997, such and such".split(/\s+(?=\d)/)
#=> ["September", "1997, such and such"]
출처
https://stackoverflow.com/questions/22079823