2013-07-24 2 views
-2

나는이 같은 입력 할 때 나는 GSUB를 만들려고 노력 해요 :정규 표현식 패턴 - GSUB 루비

'09/02 10시 HS 임의의 문자열을 '

다시 같은 날 줄 것이다 :

'09/02 10시 '

그래서 내 GSUB이 아닌 숫자하지만 내가 필요로하는 모든 문자열을해야': '와'/ '

도움말을 유지하기 바랍니다.

+0

당신이 "09/0210 : 00"'줄 것이라고 설명 vinodadhikary의 대답으로' 아니,''09/02 10:00 "'당신이주는대로. – sawa

+1

** 지금까지 시도한 것을 보여주십시오. ** 설명하지 말고 질문을 편집하여 실제 코드에 붙여 넣으십시오. 그런 다음 작동하지 않는 것을 알려주십시오. 당신이 그것을 시도했을 때 무슨 일이 일어 났습니까? 잘못된 결과를 얻었습니까? * 결과가 없습니까? 결과가 정확하지 않은 경우 무엇이 잘못 되었습니까? 대신에 당신은 무엇을 기대 했습니까? * 정확한 결과를 얻었습니까? 그렇다면 그들은 무엇입니까? 우리를 추측하지 마십시오. –

답변

1

이 아닌 수있는 모든 문자열을 소요하지만 난 필요 ':'와 '/'체류

"09/02 10:00 hs any string".gsub(/[^0-9\/:]/, '')  
# "09/0210:00" 
+0

끝에 'to_s'가 필요하지 않습니다. '0-9' 대신'\ d'를 사용해야합니다. 그렇지 않으면''0-9 \/: ""와 같은 문자열이 있으면'tr ("0-9 \/:", "")'할 수 있습니다. – sawa

+0

@sawa, 'gsub'가 문자열을 반환하므로'to_s'가 필요하지 않습니다. 복사 붙여 넣기 오류가 발생했습니다. :) – vee

0

이 시도 :

result = '09/02 10:00 hs any string'.gsub(/(?<=^\d{2}\/\d{2} \d{2}:\d{2}).*/, '') 

아이디어는 lookbehind에 넣어 날짜 시간을 캡처하지 않는 것입니다.

+0

아니, 그렇지 않았다. 모든 문자열은 동일하게 유지되었습니다. 어쨌든 고마워! –

+0

@AlejoAmiras : 이전 변수가 아니라 결과를 표시해야합니다! 그것은 작동, 나는 그것을 테스트했습니다! –

+0

그 일을하고 있지만 작동하지 않습니다 ... 입력과 출력이 동일합니다. –