Ruby의 정규 표현에 대해 (메타 문자, 캡처, 관련 메소드)
소개
정규 표현을 기억하기 시작했기 때문에, 그 사용법에 대해 비망도 겸해 기술합니다.
샘플 코드
다음과 같은 프로필이 있다고 가정합니다.
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 메소드에는, 각각 「파괴적 메소드(※)」가 준비되어 있다.
(※) 호출한 오브젝트의 상태를 변경해 버리는 메소드. 끝에 "!"를 붙인다.
정규식을 테스트할 수 있는 도구
정규식은 메타문자를 구사하기 위해 시행착오할 수 있는 툴이 사용하면 시각적으로 확인할 수 있습니다.
끝에
문자열의 검색이나 치환으로 위력을 발휘하는 정규 표현.
조만간 잘 다루고 싶어, 우선은 초보적인 학습 내용을 기술했습니다.
여기까지 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(Ruby의 정규 표현에 대해 (메타 문자, 캡처, 관련 메소드)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tkym_2020/items/33614697f72aa30f2703
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음과 같은 프로필이 있다고 가정합니다.
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 메소드에는, 각각 「파괴적 메소드(※)」가 준비되어 있다.
(※) 호출한 오브젝트의 상태를 변경해 버리는 메소드. 끝에 "!"를 붙인다.
정규식을 테스트할 수 있는 도구
정규식은 메타문자를 구사하기 위해 시행착오할 수 있는 툴이 사용하면 시각적으로 확인할 수 있습니다.
끝에
문자열의 검색이나 치환으로 위력을 발휘하는 정규 표현.
조만간 잘 다루고 싶어, 우선은 초보적인 학습 내용을 기술했습니다.
여기까지 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(Ruby의 정규 표현에 대해 (메타 문자, 캡처, 관련 메소드)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tkym_2020/items/33614697f72aa30f2703
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
(\d+)年(\d+)月(\d+)日
#=> 1234,5,6 が抽出される。
#=>下は年月日の漢字もマッチしてしまう。
\d+年\d+月\d+日
#=>1234年5月6日
p text[/\d{3}-\d{4}/].gsub('-','')
#=>7891111
정규 표현식의 메타 문자와 메서드의 의미
/(정규 표현)/ ・・・정규 표현 오브젝트는/로 둘러싸서 작성한다
[]・・・ 캐릭터 라인으로부터 정규 표현에 매치 한 부분을 빼내는 String 클래스의 메소드. 별칭 메서드는 slice 메서드.
{3}, {4} ... 직전의 문자 (이 경우\d)가 {}로 묶인 수만큼 연속합니다.
-···메타 문자가 아니고, 단지 하이픈. (하이픈은, 기술의 방법에 따라서는 「문자의 범위」를 나타내는 경우도 있기 때문에 주의)
gsub ( '제 1 인수', '제 2 인수') ... 첫 번째 인수와 일치하는 문자열을 두 번째 인수의 문자열로 바꿉니다. 위의 경우 문자열 "-"을 ""(삭제 의미)로 변환합니다.
또한, slice 메소드나 gsub 메소드에는, 각각 「파괴적 메소드(※)」가 준비되어 있다.
(※) 호출한 오브젝트의 상태를 변경해 버리는 메소드. 끝에 "!"를 붙인다.
정규식을 테스트할 수 있는 도구
정규식은 메타문자를 구사하기 위해 시행착오할 수 있는 툴이 사용하면 시각적으로 확인할 수 있습니다.
끝에
문자열의 검색이나 치환으로 위력을 발휘하는 정규 표현.
조만간 잘 다루고 싶어, 우선은 초보적인 학습 내용을 기술했습니다.
여기까지 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(Ruby의 정규 표현에 대해 (메타 문자, 캡처, 관련 메소드)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tkym_2020/items/33614697f72aa30f2703
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
문자열의 검색이나 치환으로 위력을 발휘하는 정규 표현.
조만간 잘 다루고 싶어, 우선은 초보적인 학습 내용을 기술했습니다.
여기까지 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(Ruby의 정규 표현에 대해 (메타 문자, 캡처, 관련 메소드)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tkym_2020/items/33614697f72aa30f2703텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)