나는 gsub
설명서를 검토 :정규 표현식의 캡처 된 그룹이 일치하는 문자열 이상입니까?
두 번째 인수에 대해 교체 패턴의 모든 항목에 캐릭터 라인의 카피를 돌려줍니다. 블록 형태
은 현재 검색 문자열은 매개 변수로 전달되며, 이러한 $ 1, $ 2 $ ', $ & 및 $ 같은 변수는'적절 설정한다. 블록이 반환 한 값은 각 호출에서 일치하는 으로 대체됩니다.
나는이 예제를 가지고 :
"new-york".gsub(/(-|\A)./) do |m|
m #=> "n", "-y"
m[-1].upcase
end
#=> "NewYork"
m
하이픈 또는 시작 문자 중 하나입니다 캡처 한 그룹. 시작 문자는 "n"
입니다. 다른 캡처 된 항목은 하이픈 "-"
이어야합니다. 출력은 "-"
이 아닌 "-y"
입니다. "y"
은 하이픈 또는 시작 문자가 아닙니다. 캡쳐 된 이유는 무엇입니까?
용어 _match_ 및 _capture_는 정규 표현식에서 다른 의미를 가지므로 사용 방법에주의하십시오. 또한'\ A'는 문자가 아닙니다. '/ - | \ A. /'는 하이픈 또는 시작 문자와 일치합니다. –
@SagarPandya OP에는'/ (- | \ A) ./'이 있으며, 그렇지 않습니다. '/ - | \ A. /'. – sawa
@sawa 나는 어떤 정규 표현식을 써서 OP가 "정규 표현식에서 하이픈이나 시작 문자 중 하나입니다. ". –