Ruby에서 일치시키기위한 몇 가지 옵션을 시도했는데 match
과 scan
이 다른 결과를 반환하기 때문에 결과에 혼란스러워했습니다. 내가 match
이 scan
같은 결과를 반환하지만하지 않았다 것으로 예상일치 및 검색이 동일한 정규식에 대해 다른 결과를 반환하는 이유는 무엇입니까?
s ="C:\Users\rdo\AppData\Local\Temp/ccqZSpeQ.o: In function `main':\r\nmain.c:(.text+0x8): undefined reference to `some_function'"
%r[([\w\.\/]+):(.+)].match(s)
# => #<MatchData "C:Users\rdoAppDataLocalTemp/ccqZSpeQ.o: In function `main':\r" 1:"C" 2:"Users\rdoAppDataLocalTemp/ccqZSpeQ.o: In function `main':\r">
s.scan(/([\w\.\/]+):(.+)/)
# => [["C", "Users\rdoAppDataLocalTemp/ccqZSpeQ.o: In function `main':\r"], ["main.c", "(.text+0x8): undefined reference to `some_function'"]]
:이 예입니다. 왜 그 이유를 설명 할 수 있습니까?
여기에 혼란이 있습니까? 그들은 다른 일을하고 다른 일을하는 다른 방법입니다. 문서는 각각의 기능에 대해 매우 명확합니다. –
실제로'match '가 단지 하나의 부분이나 표현과 일치하는 이유를 이해하지 못합니까? – rdo