정규 표현 식 소 백 입문 편

6055 단어
전단 이 든 백 엔 드 든 정규 표현 식 은 모두 가 피 할 수 없 는 것 같다.많은 동료 들 이 정규 표현 식 에 얽 매 이 는 것 은 어렵 고 어렵 습 니 다. 저 는 최근 에 인터넷 의 튜 토리 얼 이 좀 어 려 운 것 을 보 았 습 니 다. 지금 은 정규 표현 식 을 소개 하 겠 습 니 다. 여러분 들 이 빨리 입문 하 시 기 를 바 랍 니 다.
지금까지 나 는 한 가 지 를 배 우려 면 세 가지 문 제 를 이해 해 야 한다 고 생각 했다.
  • 왜 이런 물건 이 있 습 니까 (즉, 문제 가 발생 했 습 니 다)
  • 이 물건 을 어떻게 사용 합 니까 (즉, 문제 해결)
  • 이 물건 이 어떻게 실현 되 었 는 지 (즉, 어떻게 해결 하 는 문 제 는 보통 진급 하거나 깊이 이해 하고 싶 어서 탐구 하 는 것 이 고 여기 서 무시 하 는 것 이다)
  • 정규 표현 식 에 대한 것 은 다음 과 같 습 니 다.
  • 정규 표현 식 이 왜 있 는 지
  • 정규 표현 식 을 어떻게 사용 합 니까?
  • 다음은 이 두 가지 문제 에 대해 서 말씀 드 리 겠 습 니 다.
  • 정규 표현 식 의 생 성 원인 은 모두 가 자신의 작업 을 처리 하 는 과정 에서 자주 발생 합 니 다. 문자열 이 요구 에 부합 되 는 지, 문자 전송 에 원 하 는 문자열 이 포함 되 어 있 는 지 등 을 보고 싶 습 니 다.예 를 들 어 사용자 가 입력 한 문자열 이 합 법 적 인 메 일 주소 인지 알 고 싶 습 니 다. 예 를 들 어 사용자 가 입력 한 문자 전송 에 합 법 적 인 메 일 주 소 를 포함 하고 있 는 지 보고 싶 습 니 다. 예 를 들 어 이 문자열 에 나타 날 수 있 는 합 법 적 인 메 일 주 소 를 차단 하고 싶 습 니 다.이 물건 들 을 어떻게 처리 할 것 인가? 어떤 동료 들 은 사용 하 는 언어의 문자열 로 함 수 를 직접 처리 할 것 을 생각 할 수도 있다. 이런 직접 사용 하 는 언어의 문자열 로 함 수 를 처리 하 는 방식 은 간단 한 것 으로 는 받 아들 일 수 있 지만 조금 복잡 하면 툭하면 몇 십 줄 의 코드 로 문 제 를 해결 할 수 없다.사실은 아주 오래 전에 이런 문제 가 있 었 다. 그래서 한 대 신 켄 톰 슨 은 이 정규 표현 식 을 발명 하여 이 문 제 를 처리 했다. 그 는 특수 한 의 미 를 가 진 문자열 로 특정한 특징 에 부합 되 는 문자열 을 표현 했다. 예 를 들 어 그 는 \d{3}-\d{5} 으로 모든 세 개의 숫자 에 하 나 를 더 하 는 - 과 다섯 개의 숫자 를 더 하 는 문자열, 즉 형 '333-55555' 을 나 타 냈 다.문자열(이것 은 수학 에서 우리 가 사용 하 는 x+y=10 두 개 와 10 의 모든 숫자 조합 을 나타 내 는 것 과 유사 하 다) 사실은 한 마디 로 요약 하면 정규 표현 식 은 문자열 을 처리 하 는 도구 와 일치 하 는 것 이다.(한 가지 개인 적 인 이해: 정규 표현 식 은 우리 가 약속 한 규칙 에 맞 는 문자열 의 표현 식 으로 이해 할 수 있 습 니 다. 이 문법 사탕 에 대한 두려움 을 풀 수 있 습 니 다)
  • 정규 표현 식 은 먼저 정규 표현 식 을 어떻게 사용 합 니까? 우 리 는 먼저 재 미 있 게 표현 해 야 사용 할 수 있 습 니 다. 가장 간단 한 것 은 숫자 가 하나 밖 에 없 는 문자열 을 쓰 고 싶 습 니 다. 그러면 정규 표현 식 으로 숫자 만 있 는 문자열 을 어떻게 표현 합 니까? 정규 표현 식 으로 표현 하면 \d 이 므 로 \d바로 하나의 정규 표현 식 입 니 다. 하나의 숫자 만 있 는 모든 문자열 을 표시 하 는 데 사 용 됩 니 다. 우 리 는 그것 으로 하나의 숫자 만 있 는 모든 문자열 을 일치 시 킬 수 있 습 니 다. 그러면 더 복잡 한 것 을 표시 하고 싶 습 니 다. 예 를 들 어 숫자 에 알파벳 을 추가 하고 싶 습 니 다. 어떻게 해 야 합 니까? 하나의 숫자 에 알파벳 을 추가 할 수 있 는 정규 표현 식 을 상상 할 수 있 습 니 다.표현 식 도 특수 문자 입 니 다. 다만 우 리 는 아직 어떻게 표현 해 야 할 지 모 릅 니 다. 그러면 우 리 는 정규 표현 식 의 문법 을 좀 더 알 아야 합 니 다. 즉, 우 리 는 정규 표현 식 을 어떻게 쓰 는 지 알 아야 합 니 다.
  • 정규 표현 식 의 입문 편 문법:
  • 모든 비정규 표현 식 에 약 정 된 특수 문 자 는 자신 을 나타 낸다. 예 를 들 어 '34' 모든 문자열 이 '34' 문자열 임 을 나타 낸다. 이것 은 분명히 '34' 이 문자열 만 있다.
  • '\d' 는 하나의 숫자
  • 를 나타 내 는 데 쓰 인 다.
  • '\w' 는 알파벳 이나 숫자 를 나타 내 는 데 사용 된다. 예 를 들 어 '8', 'x', 'd'
  • '\s' 빈 칸 즉 ' '
  • '.' 은 임의의 문 자 를 나타 내 는 데 사용 된다. 예 를 들 어 '8', 'x', 'd', ' ', '=', '+'
  • 그러면 우 리 는 세 개의 숫자 를 연속 으로 표시 해 야 합 니 다. '{' 분명히 가능 합 니 다. 그러면 나 는 100 개의 숫자 를 표시 하려 고 합 니 다. 100 개 '\d\d\d' 를 연속 하 는 것 은 너무 복잡 합 니 다. 그러면 이것 을 어떻게 표시 합 니까? 정규 표현 식 의 곱셈 과 비슷 합 니 다 '\d' 는 세 개의 숫자 로 구 성 된 문자열 을 나타 내 는 것 입 니 다. 예 를 들 어 '\d{3}', '123'.이런 문법 을 위의 4 가지 에 응용 하면 상황 은 다음 과 같다.
  • '111' 연속 3 개 '3{3}' 로 구 성 된 문자열 을 나타 내 는 데 사 용 됩 니 다. 분명히 '3'
  • 만 있 습 니 다.
  • '333' 세 개의 숫자 로 구 성 된 문자열 을 나타 내 는 데 사 용 됩 니 다. 예 를 들 어 '\d{3}', '123'
  • '111' 세 개의 숫자 나 자모 로 구 성 된 문자 교환 을 나타 내 는 데 사용 된다. 예 를 들 어 '\w{3}', 'qw1'
  • '111' 세 개의 임 의 문자 로 구 성 된 문자열 을 나타 내 는 데 사 용 됩 니 다. 예 를 들 어 '.{3}', 'xxx', 'x-1'
  • 그러면 우리 가 x ~ y 문자 로 구 성 된 문자열 을 표시 하려 면 '=+ 2 - 5 개의 숫자 로 구 성 된 문자열, 예 를 들 어 '\d{2,5}', '12', '1234' 같은 이치 가 나 타 났 습 니 다.
  • '34215' 는 1 - 10 자모 로 구 성 된 문자열
  • 을 나타 낸다.
  • '\w{1,10}' 임 의 문자 그룹 2 - 8 개의 문자열 을 표시 합 니 다.
  • '.{2-8}' 3 - 7 개의 '1' 로 구 성 된 문자열
  • 또 하나의 문제 가 있 습 니 다. 만약 에 제 가 적어도 1 개, 많 으 면 무한 개 까지 의 문자열 을 표현 하고 싶다 면 정규 표현 식 에 표시 와 유사 한 문자 가 있 습 니까? 사실은 없 지만 비슷 한 것 이 있 습 니 다. 우 리 는 '1{3,7}' 으로 0 - 표시 개 를 표시 합 니 다. '*' 는 1 - 표시 개 를 표시 합 니 다. 예 를 들 어 '+', '3*'각각 0 에서 무한 여러 개의 3 으로 구 성 된 문자열, 1 에서 무한 한 숫자 로 구 성 된 문자열 을 나타 낸다.
  • ok, 이제 우 리 는 정규 표현 식 에 기본적으로 입문 하 였 습 니 다. 먼저 우리 가 좀 더 깊이 들 어가 보 겠 습 니 다. 먼저 해결 하고 자 하 는 수 요 는 1, 2, 3 이라는 세 가지 숫자 로 구 성 된 것 을 어떻게 표현 하 는 지 입 니 다.
  • '\d*' 는 길이 가 3 에서 5 인 문자열 을 나타 내 는데 그 요 소 는 요소 집합 '[123]{3,5}', '1', '2' 의 부분 집합 일 수 밖 에 없다. 그 중에서 괄호 안에 선택 할 수 있 는 집합
  • 을 나타 낸다.
    그리고 우 리 는 소문 자 a 에서 y 까지 25 글자 로 구 성 된 임의의 길이 문자열 을 표시 하고 싶 습 니 다. 어떻게 해 야 합 니까? 정규 표현 식 에 25 자 모 를 써 야 합 니까? 분명히 필요 하지 않 습 니 다. 그래서:
  • '3' a 에서 y 까지 의 집합 을 나타 내 는 부분 집합 은 임의의 길 이 를 나타 내 는 문자열
  • 너 는 자주 볼 수 있 을 것 이다 '[a-y]*' 이런 표기 법 은 하나의 숫자 나 자 모 를 나타 내 는 것 이다. [0-9a-zA-Z] 와 유사 하 다. 만약 에 내 가 'A' 나 'B' 로 구 성 된 문자열 과 일치 하고 싶다 면 사실은 우 리 는 위의 지식 으로 쓸 수 있다. '\w' 는 A 나 B 로 구 성 된 문자열 을 나타 내 는데 더 편리 한 표기 법 이 있 는 지 없 는 지 를 나타 낸다.
  • 'A | B' 가 나타 나 면 'A' 와 일치 하거나 'B' 와 일치 하 는 표현 식
  • 을 나타 낸다.
  • 또한 자주 사용 하 는 일치 하 는 줄 이 끝 나 는 문 자 는 ^ 와 $
  • 입 니 다.
  • 이렇게 가장 기본 적 인 정규 표현 식 은 설명 이 끝 났 습 니 다.
  • 그리고 이 편 은 새로 편 성 된 지 얼마 되 지 않 은 초보 자 를 대상 으로 하 는 튜 토리 얼 입 니 다. 제 가 공부 하 는 과정 에서 궁금 한 점 에 대한 설명 이 섞 여 있어 서 어떤 사람들 에 게 는 말 할 필요 가 없 을 수도 있 습 니 다.
  • 그리고 여러분 의 벽돌 메 시 지 를 환영 합 니 다.
  • 좋은 웹페이지 즐겨찾기