사용자 도구

사이트 도구


kb:rubyregularexpression

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

kb:rubyregularexpression [2014/11/09 20:32] (현재)
줄 1: 줄 1:
 +====== Ruby Regular Expression ======
 +루비는 정규식 기능 자체가 언어의 기본 기능이기 때문에 사용 방법이 약간 특이하다.
 +
 +====== 검색 ======
 +문자열이 정규식을 포함하는지의 여부만 체크하려면 "​=~"​ 연산자를 이용한다.
 +
 +<code ruby>
 +print("​abcdef"​ =~ /cdef/)
 +print("​\n"​)
 +print("​aaaaaa"​ =~ /cdef/)
 +print("​\n"​)
 +</​code>​ <​code>​
 +2
 +nil
 +</​code>​
 +
 +일치하는 부분을 좀 더 자세히 알고자 한다면, **scan** 함수를 이용한다.
 +
 +<code ruby>
 +str.scan( pattern ) -> anArray ​
 +</​code>​
 +
 +<code ruby>
 +"​12ab34cd"​.scan(/​[a-z]+/​) { |match| print("#​{match}\n"​) }
 +</​code>​
 +
 +<​code>​
 +ab
 +cd
 +</​code>​
 +
 +<code ruby>
 +a = "cruel world" ​
 +a.scan(/​\w+/​)
 +a.scan(/​.../​)
 +a.scan(/​(...)/​)
 +a.scan(/​(..)(..)/​)
 +</​code>​
 +
 +<​code>​
 +["​cruel",​ "​world"​]
 +["​cru",​ "el ", "​wor"​]
 +[["​cru"​],​ ["el "], ["​wor"​]]
 +[["​cr",​ "​ue"​],​ ["l ", "​wo"​]]
 +</​code>​
 +
 +====== 치환 ======
 +sub 함수 또는 gsub 함수를 이용한다.
 +
 +**sub** 함수는 주어진 정규식과 일치하는 처음 패턴만 치환한 문자열을 반환한다. **gsub** 함수는 주어진 정규식과 일치하는 모든 부분을 치환한 문자열을 반환한다.
 +
 +<​code>​
 +str.sub( pattern, replacement ) -> aString ​
 +str.sub( pattern ) {| match | block } -> aString ​
 +str.gsub( pattern, replacement ) -> aString ​
 +str.gsub( pattern ) {| match | block } -> aString ​
 +</​code>​
 +
 +<code ruby>
 +result = "​abcdef abcdef"​.sub(/​cdef/,​ "​123"​)
 +print("#​{result}\n"​)
 +result = "​abcdef abcdef"​.gsub(/​cdef/,​ "​123"​)
 +print("#​{result}\n"​)
 +</​code>​
 +
 +<​code>​
 +ab123 abcdef
 +ab123 ab123
 +</​code>​
 +
 +
 +====== 링크 ======
 +  * [[http://​www.rubycentral.com/​ref/​ref_c_string.html | Ruby Class and Library Reference: String]]
 +
 +----
 +  * see also [[Ruby]], [[RegularExpression]]
  
kb/rubyregularexpression.txt · 마지막으로 수정됨: 2014/11/09 20:32 (바깥 편집)