나는 정규식에 새로운 오전, 내가 더 잘 이해할 수 있도록 내가 정규식을 분해하는 것을 시도하고있다 :정규식 ( d {3}) (? = d)은 무엇을 의미합니까?
/(\d{3})(?=\d)/
을 내가 (\d{3})
3 자리 숫자를 캡처 이해하지만 제 2 부분을 캡처하려고하는 것을 확실 .
?=
의 의미는 무엇입니까?
나는 정규식에 새로운 오전, 내가 더 잘 이해할 수 있도록 내가 정규식을 분해하는 것을 시도하고있다 :정규식 ( d {3}) (? = d)은 무엇을 의미합니까?
/(\d{3})(?=\d)/
을 내가 (\d{3})
3 자리 숫자를 캡처 이해하지만 제 2 부분을 캡처하려고하는 것을 확실 .
?=
의 의미는 무엇입니까?
(?=\d)
은 & 숫자 다음에 오는 숫자가 일치하는 것을 의미합니다.
그래서 이런 일이 발생합니다 :
1234 => capture 123
123a => no match
설명해 주셔서 감사합니다. 따라서 다음 코드와 같이 : number.to_s.reverse.gsub (/ (\ d {3}) ('\ 1,') 이렇게하면 3 자리가 모두 포착됩니다. 그 뒤에 적어도 하나의 자리가 있습니다. true이면 ","에 하위를 입력하십시오. 괜찮으 시다면 "\ 1"에 대해 설명해 주시겠습니까? google에서이 문제를 조사해 보았습니다. 설명은 이해하기 어려웠습니다. – DHuang
'\ 1'은 실제로 캡처 된 그룹 # 1에 대한 역 참조입니다. 그래서'1234'는'123,4'가 될 것입니다 – anubhava
정규식 [여기] [1]을 (를) 테스트 할 수 있습니다. 당신이 원하는 것이지만 여전히 도움이되는 것에 대한 진정한 대답은 아닙니다. [1] : http://regexpal.com/ – chillworld