정규 표현 식 - 하위 표현 식 (4)

1987 단어 정규 표현 식
이 절 부터 정규 표현 식 의 일부 고급 용법 과 관련 되 기 시 작 했 습 니 다. 앞 에는 기초 지식 만 기본 블록 으로 다음 과 같은 고급 사용 방법 을 구성 하 였 습 니 다.쉽게 말 하면 하위 표현 식 은 괄호 로 감 싼 정규 표현 식 일 뿐이다.한편, 본 장의 하위 표현 식 은 뒤의 일치 성, 역 추적, 앞 뒤 찾기, 삽입 조건 과 교체 에서 모두 중요 한 역할 을 발휘 할 것 이다.그럼 이제 이 중요 한 표현 식 개념 을 배 워 보 겠 습 니 다.불법 이 아니 라 정확 한 ip 주소 정 보 를 찾 아야 한다 고 가정 합 니 다.그러면 일반적인 표기 법 에 따 르 면 다음 과 같다.
  • ([\d]{1,3}\.){3}([\d]{1,3})

  • 이 가운데 괄호 2 개가 포 함 돼 있 는데 바로 2 개의 표현 식 이다.([\ d] {1, 3} \.) 와 ([\ d] {1, 3}) 물론 이 표현 식 은 문제 가 있 습 니 다.예 를 들 어 Ip 주소 의 숫자 는 0 - 255 범위 내 이 고 위의 표현 식 은 255 이상 의 숫자 와 일치 할 수 있 으 며 심지어 999 까지 일치 할 수 있다. 이것 은 당연히 정확 하지 않다.조금 만 개량 하면 우리 의 요 구 를 충족 시 킬 수 있 을 거 야.
             첫 번 째 단 계 는 0 - 255 까지 일치 하 는 표현 식 을 찾 는 것 입 니 다. 이것 은 어렵 지 않 습 니 다. 다음 과 같은 정규 표현 식 을 생각해 보 세 요.사 고 는 1 비트, 2 비트, 또는 3 비트 ip 주소 입 니 다.
     (((1[\d]{2})|([\d])|([1-9][\d])|(25[0-5])|(2[0-4][\d]))\\.){3}
    

    마지막 숫자 는 0 - 255 입 니 다. 일치 할 필요 가 없습니다. 따라서 최종 표현 식 은 이 렇 습 니 다.
    (((1[\d]{2})|([\d])|([1-9][\d])|(25[0-5])|(2[0-4][\d]))\\.){3}(((1[\d]{2})|([1-9][\d])|([\d])|(25[0-5])|(2[0-4][\d])))
    

    (1 [\ d] {2}) | ([1 - 9] [\ d]) | (25 [0 - 5]) | (2 [0 - 4] [\ d]) \.) {3} 길 어 보 이 는 사람 도 있 을 수 있 지만 사실은 각 표현 식 이 므 로 각 표현 식 의 관 계 를 잘 정리 하면 됩 니 다.글 의 마지막 부분 은 제 가 작은 기 교 를 하나 공유 하 겠 습 니 다.많은 사람들 이 SQL 문 구 를 작성 합 니 다. 필드 가 많은 데이터베이스 시트 를 만나면 UPDATE 매개 변수 문 구 를 작성 하 는 것 도 무 너 질 것 같 습 니 다. 여기 서 하위 표현 식 을 사용 하 는 작은 기술 을 소개 합 니 다.
    결국 우리 가 원 하 는 결 과 는 이렇다.
     update tablea set
         a=@a,b=@b,c=@c,d=@d,e=@e,f=@f,g=@g 
         where id =@id
         
    
      notepad++        , a,b,c,d,e,f,g         , find      (\w+)
        replace      \1=\@\1,      ,      :
    
          a=@a,b=@b,c=@c,d=@d,e=@e,f=@f,g=@g 
    

            업데이트 where 등 문 구 를 더 하면 빠 르 고 완전 하 다.여기 서 설명 하 겠 습 니 다. 첫 번 째 표현 식 대신 텍스트 의 \ \ 1 을 대체 하 는 데 사 용 됩 니 다. (물론 여러 개 는 \ 2 \ \ 3 등 을 사용 할 수 있 습 니 다.) 자리 표시 자 에 해당 합 니 다. \ \ 1 = (\ w +) 그래서 결국 우리 가 원 하 는 모습 으로 바 뀌 었 습 니 다.

    좋은 웹페이지 즐겨찾기