Ruby를 처음 사용하며 숫자의 첫 번째 항목을 검색 할 때 항상 String.scan
을 사용했습니다. 반환 값이 중첩 배열에있는 것이 이상한 일이지만, 원하는 값으로 [0][0]
을 사용하면됩니다. (나는 그것이 그것의 목적을 가지고 있다고 확신하는데, 아직 사용하지 않았다.)Ruby 문자열의 검색과 일치의 차이점
나는 방금 String.match
방법이 있다는 것을 알았다. 반환 된 배열이 중첩되어 있지 않으므로 더 편리합니다. 로,
>> 'a 1-night stay'.scan(/(a)?(\d*)[- ]night/i).to_a
=> [["a ", "1"]]
그때 나는 API를 확인이 일치
>> 'a 1-night stay'.match(/(a)?(\d*)[- ]night/i).to_a
=> ["a 1-night", "a ", "1"]
,하지만 난 정말 차이를 구별 할 수 없습니다 여기
먼저 스캔되어 두의 예입니다 둘 다 '패턴 일치'라고 언급했습니다.이 질문은 단순히 호기심에 대한 것인데, scan
이 할 수있는 것이 무엇인지에 관한 것입니다. match
은 그럴 수없고 그 반대입니다. 단 하나의 시나리오 만 성취 할 수 있습니까? 의 match
은 열등합니까?