다음과 같은 문자열이 있습니다 : 00:11:40 또는 00:02:40 어떻게하면 항상 앞에 오는 0과 콜론을 제거 할 수 있도록 형식화합니까? 그것은이 11시 40분 또는 2시 40분문자열 형식화, 선행 문자 제거
답변
x.sub(/^[0:]*/,"")
정확하게 표현한대로 작동합니다. starti 문자열의 시작 부분에 모든 0과 : s를 제거하십시오.
EDIT처럼 보인다 있도록, 상기 영업 이익은 처음부터이 원 :
seconds = 11*60+40
Time.at(seconds.to_i).gmtime.strftime('%M:%S') # gives '11:40'
이상의 서식 옵션에 대한 man strftime
을 참조하십시오.
편집 : 모든 토론을 통합하여 다음 권장 방법을 사용하십시오. 그것은 시간 호출의 필요성을 제거합니다.
seconds = seconds.to_i
if seconds >= 60
"#{seconds/60}:#{seconds%60}"
else
"#{seconds}"
end
감사합니다. 그러나이 작업을 수행하는 일반적인 방법이 필요합니다. 초 단위에서 변환을 통해 문자열을 가져옵니다. time.at (초 .to_i) .gmtime.strftime ('% R : % S') –
닫기! 내가 어떻게 "gsub"를 사용하여 몇 가지 정규식을 맨 앞에 0 및/또는 콜론을 제거하는 방법을 그림해야합니다 –
당신은 베드로가 말한 것처럼 뭔가를 사용할 수 있지만, 제대로 될 것이다 :
s = "00:11:40"
s = s[3..-1] # 11:40
또 다른 방법은 분할 방법을 사용하는 것입니다 : 나는 것을 발견했지만
s = "00:11:40".split(":")[1,2].join(":")
을 한 번 더 혼란스럽고 복잡한.
긍정적 인 look-behind regex를 시도해보십시오. 니스 reference
it "should look-behind for zeros" do
time = remove_behind_zeroes("ta:da:na")
time.should be_nil
time = remove_behind_zeroes("22:43:20")
time.should == "22:43:20"
time = remove_behind_zeroes("00:12:30")
time.should == "12:30"
time = remove_behind_zeroes("00:11:40")
time.should == "11:40"
time = remove_behind_zeroes("00:02:40")
time.should == "2:40"
time = remove_behind_zeroes("00:00:26")
time.should == "26"
끝
def remove_behind_zeroes(value)
exp = /(?<=00:00:)\d\d/
match = exp.match(value)
if match then return match[0] end
exp = /(?<=00:0)\d:\d\d/
match = exp.match(value)
if match then return match[0] end
exp = /(?<=00:)\d\d:\d\d/
match = exp.match(value)
if match then return match[0] end
exp = /\d\d:\d\d:\d\d/
match = exp.match(value)
if match then return match[0] end
nil
끝에 그들은 처음에,하지만 이것에 대한 정규식은 매우 간단하기 때문에 우리는이 "선도"문자 후행하지 호출
네 가지 정규식과 코드 15 라인에 대한 필요가 없습니다! 하나의 .sub (/^[0 :] * /, "")은 잘 작동합니다! –
예를 들어 루비에서 "05"와 같은 문자열이 있고 그냥 5가 되길 원한다면 기본 변환 기술에 의존 할 수 있습니다. "05".to_i
- 1. 파일에서 선행 공백 제거
- 2. 문자열 스칼라의 끝에서 문자 제거
- 3. Bash 문자열 특정 문자 제거
- 4. PHP 문자열 변수에서 문자 제거
- 5. 정규식 - 파이썬 - 선행 공백 제거
- 6. 아포스트로피에서 선행 백 슬래시 제거
- 7. C# 문자열 형식화 및 패딩
- 8. JAXB에서 선행/후행 공백을 제거 하시겠습니까?
- 9. 문자열에서 문자 제거
- 10. 잘못된 문자 제거 도우미?
- 11. 정규식 제거 여분의 문자
- 12. 서버 이름에서 문자 제거
- 13. 이스케이프 된 문자 제거
- 14. 문자열에서 문자 제거
- 15. NSString에서 NSCharacterSet의 문자 제거
- 16. 문자열에서 문자 제거
- 17. 있는 NSString 제거 문자
- 18. 제거 탭 문자 - 펄
- 19. Fortran : 문자열에서 문자 제거
- 20. 넓은 문자 제거, Perl
- 21. 문자열에서 문자 제거
- 22. 반복 문자 제거
- 23. 문자열 끝에 '/'를 제거 하시겠습니까?
- 24. SQL 서버 문자열 특수 문자
- 25. 형식화 된 문자열 구문 분석 및 업데이트
- 26. Android에서 문자 배열의 마지막 요소를 제거 하시겠습니까?
- 27. 통과 문자열 성병 문자 :지도 :: 찾기 (..)
- 28. Java 문자열에서 행 끝 문자 제거
- 29. 제거 URL 쿼리 문자열
- 30. url에서 쿼리 문자열 제거
우리 중 일부는 단지 정규 표현식의 겸손한 학생이고, 다른 사람들은 그냥 주인입니다 (나와 나에게서 일어났습니다). 그게 22시에 TDD 때 일어난 일입니다. 리팩토링은 연습으로 남아 있습니다. – Gutzofter
''00:00:23 "'은 이상하게 보이는''23"'이됩니다. 그러나 불쾌감은 없지만 이것은 여전히 OP가 요청한 것입니다. –