Ruby의 정규 표현에 대해 (메타 문자, 캡처, 관련 메소드)

2759 단어 루비정규식

소개



정규 표현을 기억하기 시작했기 때문에, 그 사용법에 대해 비망도 겸해 기술합니다.

샘플 코드



다음과 같은 프로필이 있다고 가정합니다.
text = <<TEXT
生年月日:1234年5月6日生まれ
郵便番号:789-1111
TEXT

생년월일부터 숫자만 ​​추출하려는 경우


(\d+)(\d+)(\d+)
#=> 1234,5,6 が抽出される。
#=>下は年月日の漢字もマッチしてしまう。
\d+\d+\d+
#=>1234年5月6日

정규식의 메타 문자 의미



\d ・・・ 반각 숫자(자릿수는 묻지 않는다)
+··· 직전의 문자나 패턴이 1회 이상 연속하고 있다
() ... 내부에서 일치하는 문자열을 캡처 또는 그룹화
년, 월, 일 ... 메타 문자가 아닌 단순한 문자열

우편번호 사이에 하이픈 "-"를 제외하고 싶다면


p text[/\d{3}-\d{4}/].gsub('-','')
#=>7891111

정규 표현식의 메타 문자와 메서드의 의미



/(정규 표현)/ ・・・정규 표현 오브젝트는/로 둘러싸서 작성한다
[]・・・ 캐릭터 라인으로부터 정규 표현에 매치 한 부분을 빼내는 String 클래스의 메소드. 별칭 메서드는 slice 메서드.
{3}, {4} ... 직전의 문자 (이 경우\d)가 {}로 묶인 수만큼 연속합니다.
-···메타 문자가 아니고, 단지 하이픈. (하이픈은, 기술의 방법에 따라서는 「문자의 범위」를 나타내는 경우도 있기 때문에 주의)
gsub ( '제 1 인수', '제 2 인수') ... 첫 번째 인수와 일치하는 문자열을 두 번째 인수의 문자열로 바꿉니다. 위의 경우 문자열 "-"을 ""(삭제 의미)로 변환합니다.
또한, slice 메소드나 gsub 메소드에는, 각각 「파괴적 메소드(※)」가 준비되어 있다.
(※) 호출한 오브젝트의 상태를 변경해 버리는 메소드. 끝에 "!"를 붙인다.

정규식을 테스트할 수 있는 도구



정규식은 메타문자를 구사하기 위해 시행착오할 수 있는 툴이 사용하면 시각적으로 확인할 수 있습니다.


끝에



문자열의 검색이나 치환으로 위력을 발휘하는 정규 표현.
조만간 잘 다루고 싶어, 우선은 초보적인 학습 내용을 기술했습니다.
여기까지 읽어 주셔서 감사합니다.

좋은 웹페이지 즐겨찾기