답변:
"<name> <substring>"[/.*<([^>]*)/,1]
=> "substring"
scan
결과가 하나만 필요한 경우을 사용할 필요가 없습니다 . Ruby가있을 때
Python을 사용할 필요가 없습니다 .match
String[regexp,#]
참조 : http://ruby-doc.org/core/String.html#method-i-5B-5D
노트 : str[regexp, capture] → new_str or nil
if we need only one result
솔루션을 지적 했습니다. 그리고 match()[]
하나가 아닌 두 가지 방법이기 때문에 속도가 느립니다.
string[regex]
이 시나리오에서 읽을 수있는 것처럼 생각 하기 때문에 개인적으로 사용했습니다.
이 방법을 사용하는 약간 더 유연한 접근법이 match
있습니다. 이를 통해 둘 이상의 문자열을 추출 할 수 있습니다.
s = "<ants> <pants>"
matchdata = s.match(/<([^>]*)> <([^>]*)>/)
# Use 'captures' to get an array of the captures
matchdata.captures # ["ants","pants"]
# Or use raw indices
matchdata[0] # whole regex match: "<ants> <pants>"
matchdata[1] # first capture: "ants"
matchdata[2] # second capture: "pants"