반응형
모든 공백을 밑줄로 안전하게 루비로 바꾸는 방법은 무엇입니까?
이것은 공백이있는 모든 문자열에서 작동합니다.
str.downcase.tr!(" ", "_")
그러나 공백이없는 문자열은 삭제됩니다.
그래서 "New School"은 "new_school"로 변경되지만 "color"는 ""가됩니다. 아무것도 아닙니다!
String # tr과 동일한 규칙을 사용하여 str을 제자리에서 변환합니다. 변경 사항이 없으면 str 또는 nil을 반환합니다.
느낌표없이 tr 을 사용하면 정확한 결과를 얻을 수 있다고 생각합니다 .
공간
str = "New School"
str.parameterize.underscore
=> "new_school"
공간없이
str = "school"
str.parameterize.underscore
=> "school"
편집 :-또한 매개 변수화 할 매개 변수로 '_'를 전달할 수 있습니다.
공간
str = "New School"
str.parameterize('_')
=> "new_school"
공간없이
str = "school"
str.parameterize('_')
=> "school"
snake case 에서 문자열을 얻는 데 관심이 있다면 , 연결된 밑줄과 시작 / 뒤에 밑줄이 나타날 수 있으므로 제안 된 솔루션이 제대로 작동하지 않습니다.
예를 들면
1.9.3-p0 :010 > str= " John Smith Beer "
=> " John Smith Beer "
1.9.3-p0 :011 > str.downcase.tr(" ", "_")
=> "__john___smith_beer_"
이 솔루션은 더 잘 작동합니다.
1.9.3-p0 :010 > str= " John Smith Beer "
=> " John Smith Beer "
1.9.3-p0 :012 > str.squish.downcase.tr(" ","_")
=> "john_smith_beer"
squish는 Rails에서 제공하는 String 메서드입니다.
레일 5 이상을 사용하는 경우 다음과 같은 작업을 수행 할 수 있습니다.
str.parameterize(separator: '_')
오래된 질문이지만 ...
들어 모든 공백 당신은 아마 이런 식으로 뭔가 더 원하는 :
"hey\t there world".gsub(/\s+/, '_') # hey_there_world
이것은 탭과 새 줄뿐만 아니라 공백을 가져오고 단일 _
.
정규식은 필요에 맞게 수정할 수 있습니다. 예 :
"hey\t there world".gsub(/\s/, '_') # hey__there___world
str.downcase.tr(" ", "_")
참고 : "!"
str = "Foo Bar"
str.tr(' ','').underscore
=> "foo_bar"
str.gsub ( "", "_")도 할 수 있습니다.
반응형
'Programing' 카테고리의 다른 글
Log4Net : 롤링 파일 어 펜더, 확장 정의 (0) | 2020.11.13 |
---|---|
폴더 크기는 어떻게 계산합니까? (0) | 2020.11.13 |
imagecreatefromjpeg 및 유사한 기능이 PHP에서 작동하지 않습니다. (0) | 2020.11.13 |
* .appref-ms의 대상 * .exe 파일을 찾는 방법 (0) | 2020.11.12 |
개체가 아닌 멤버 함수 호출 (0) | 2020.11.12 |