와 같은 문자열이 있습니다 hello _there_
. 내가 가진 두 개의 밑줄을 교체하고 싶습니다 <div>
및 </div>
사용하여, 각각 자바 스크립트를 . 따라서 출력은 다음과 같습니다 hello <div>there</div>
. 문자열에는 여러 쌍의 밑줄이 포함될 수 있습니다.
내가 찾던하는 방법입니다 중 각 경기, 루비 그것을 수행하는 방법에 함수를 실행합니다 :
"hello _there_".gsub(/_.*?_/) { |m| "<div>" + m[1..-2] + "</div>" }
또는 루비에서 수행 할 수있는 방법과 일치하는 그룹을 참조 할 수 있습니다.
"hello _there_".gsub(/_(.*?)_/, "<div>\\1</div>")
어떤 아이디어 나 제안?
답변
"hello _there_".replace(/_(.*?)_/, function(a, b){
return '<div>' + b + '</div>';
})
아, 아니면 :
"hello _there_".replace(/_(.*?)_/, "<div>$1</div>")
답변
replace
대신 사용할 수 있습니다 gsub
.
"hello _there_".replace(/_(.*?)_/g, "<div>\$1</div>")
답변
에 의해 지정된 교체 문자열 및 교체 패턴 $
. 여기 이력서 :
문서 링크 : 여기
"hello _there_".replace(/_(.*?)_/g, "<div>$1</div>")
노트 :
당신은을하려면 $
대체 문자열의 사용 $$
. vscode 스 니펫 시스템과 동일합니다.