2011-09-24 5 views

답변

6

0 개 또는 하나의 리터럴 점과 하나 이상의 0이 뒤 따르는 다음 문자열의 끝과 일치합니다.

\.  #A literal dot 
?  #Zero or one of the previous character 
0+  #One or more zeros 
$  #End of string 
+0

답변이 매우 유용합니다. 고마워요 –

+0

"아닌가요?" 이전 문자 중 0 또는 1 개? 내가 틀릴 수도 있지만, 그것은 내가 정규식에서 기억하는 것입니다. –

+0

@AdamSmith, 예, mu 저를 위해 그것을 바로 잡았습니다. –

12

'24 .00'을 '24'로 변경하여 문자열의 끝에서 마침표와 트레일 링 제로를 제거합니다. 조각 내 :

s/ substitute operation 
\. literal period, not a placeholder 
? Period is optional (by the way, probably a bug) 
0+ one or more zeros 
$ all of this at the end of the string. 
// replace it with nothing, i.e., just delete it. 

버그? 글쎄, '2400'은 '24'로 바뀔거야. 아마도 원하는 동작이 아닙니다.

+1

잘 찾아 냈습니다! 정규 표현식의 목적이 숫자의 소수 부분을 제거하는 것이고 '\ .'는 선택 사항으로 취급해서는 안됩니다. –

3
+0

북마크 됨. 감사합니다 –

+1

거기에 대한 펄 모듈입니다! http://search.cpan.org/perldoc/YAPE::Regex::Explain – sebthebert

+0

@sebthebert : 놀라워요, 안 그래요? 그것은 내가 좋아하는 사이트를 운전합니다. 나는 Perl이 그리워 ... – dawg