정규 표현 식 그룹 과 인용 사용

0.앞 에 쓴다
오늘 우 리 는 다음 정규 중의 그룹 과 인용 을 말 합 니 다.사실은제1 편에서 우 리 는 실전 부분 에서 그룹 을 나 누 는 기능 을 사 용 했 습 니 다.IPv 4 주소 의 정규 표현 식 을 돌 이 켜 보 겠 습 니 다.

^([1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.(0|[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$
간략하게 쓸 수 있다.

^( 1)(\.( 2)){3}$
표현 식 에 몇 쌍 의 괄호 가 나 타 났 는 지 볼 수 있 습 니 다.왜 괄호 로 표현 식 을 묶 어야 합 니까?이 괄호 들 이 어떤 역할 을 하 는 지 살 펴 보 겠 습 니 다.
1.그룹 과 번호
괄호 는 정규 에서 그룹 을 나 눌 수 있 고 괄호 로 묶 인 부분 은 하위 표현 식 이 라 고 할 수 있 으 며 하위 그룹 으로 저 장 됩 니 다.
밤 을 들 어 날짜 시간 2021-06-01 13:14:21 이 있 습 니 다.우 리 는 그 중의 날짜 와 시간 을 추출 하려 면 날짜 와 시간 을 괄호 로 나 누 어야 합 니 다.아래 그림 과 같 습 니 다.
分组与编号
그림 에서 두 개의 그룹 이 있 고 날짜 그룹 은 첫 번 째 이 며 시간 그룹 은 두 번 째 입 니 다.우 리 는 왼쪽 괄호 의 위치 로 그룹의 레이 블 을 표시 합 니 다.1 부터 몇 번 째 왼쪽 괄호 가 바로 몇 번 째 그룹 입 니 다.
위의 밤,우 리 는 좀 더 가 늘 게 나 누 어야 한다.우 리 는 그 중의 년,월,일,시,분,초 를 각각 추출 해 야 한다.아래 그림 과 같다.
括号嵌套
날 짜 를 볼 수 있 는 조별 번 호 는 1 이 고 시간 조별 번 호 는 5 이 며 년 월 일의 조별 번 호 는 각각 2,3,4 이 며 시 분 초의 조별 번 호 는 각각 6,7,8 이다.
2.하위 그룹 저장 하지 않 기
그룹 을 나 누 는 것 은 일정한 성능 소모 가 있 습 니 다.어떤 경우 에 우 리 는 단순히 그룹 을 나 누 려 고 할 뿐 나중에 사용 하고 싶 지 않 으 면 왼쪽 괄호 뒤에 추가 할 수 있 습 니까?:하위 그룹 을 저장 하지 않 음 을 표시 합 니 다.
예 를 들 어 대상 문자열 의 15 자리 나 18 자리 숫자 와 정규 일치 하 는 숫자 를 사용 해 야 합 니 다.
기능.
정칙
예시
하위 그룹 저장
(정규)
\d{15}(\d{3})?
하위 그룹 저장 하지 않 기
(?:정칙
\d{15}(?:\d{3})?
保存子组
不保存子组
우리 가 전에 말 한 IPv 4 정규 표 시 는 최적화 할 수 있다.

^(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:0|[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$
IPv4地址正则匹配
3.그룹 참조
위 에서 그룹 을 나 누 었 습 니 다.우 리 는 그룹 을 어떻게 인용 하 는 지 보 겠 습 니 다.대부분의 언어 는 역 슬 래 쉬+번 호 를 사용 하 는 방식 입 니 다.예 를 들 어 자 바스 크 립 트 언어 는 달러 기호+번 호 를 사용 하 는 방식 입 니 다.
프로 그래 밍 언어
찾 을 때 참조 방식
대체 시 참조 방식
Python
umber 예\1
umber 예\1
Go
공식 패키지 지원 하지 않 음
공식 패키지 지원 하지 않 음
Java
umber 예\1
$number 예$1
JavaScript
$number 예$1
$number 예$1
PHP
umber 예\1
umber 예\1
Ruby
umber 예\1
umber 예\1
4.찾기 와 바 꾸 기
 찾다
여기까지 우 리 는 그룹 을 나 누고 인용 하 는 지식 을 배 웠 습 니 다.함께 실천 하면 이러한 수요 가 있 습 니 다.하나의 목표 문자열 에서 중복 되 는 두 단 어 를 찾 습 니 다.
단어 경 계 를 아직 배우 지 못 했 습 니 다.우 리 는 먼저\w{2,}로 나타 난 단 어 를 표시 합 니 다.중복 되 는 단 어 는(\w{2,}\1)입 니 다.결 과 를 보 세 요.
分组查找
바꾸다
위의 내용 을 우 리 는 날짜 의 그룹 을 나 누 어 바 꾸 었 다.
分组替换
대응 하 는 Python 코드 는 다음 과 같 습 니 다.

import re

test_str = "2021-06-01 13:14:21"
regex = r"((\d{4})-(\d{2})-(\d{2})) ((\d{2}):(\d{2}):(\d{2}))"
subst = r"\2 \3 \4  \6 \7 \8 "
result = re.sub(regex, subst, test_str)
print(result)

  :2021 06 01  13 14 21 
5.텍스트 편집기 에서 사용
정규 표현 식 은 코드 뿐만 아니 라 텍스트 편집기 에서 도 자주 사용 되 는 표현 입 니 다.Sublime Text 3 의 예 를 들 어 정규 검색 과 교 체 를 통 해 배 운 후에 적은 노력 으로 큰 효 과 를 거 둘 수 있 습 니 다.
Find->Find 옵션 을 누 르 거나 단축 키 Ctrl+F 를 사용 하면 찾기 기능 을 불 러 올 수 있 습 니 다.
Sublime Text 查找.png
Find->Replace 옵션 을 누 르 거나 단축 키 Ctrl+H 를 사용 하면 교체 기능 을 불 러 올 수 있 습 니 다.
Sublime Text 替换.png
찾다
우 리 는 메 일 을 찾 는 기능 을 실현 합 니 다.이곳 의 메 일 은 바로 간단 한 프 리 젠 테 이 션 에 만 사 용 됩 니 다.Find All 단 추 를 누 르 면 메 일 을 모두 찾 을 수 있 습 니 다.이때 Ctrl+C 를 누 르 면 찾 은 메 일 을 따로 붙 일 수 있 습 니 다.
查找演示
바꾸다
우리 가 위 에서 말 한 교체 예 를 보 여 줍 니 다.
替换演示
어 떻 습 니까?편리 하지 않 습 니까?거의 모든 주류 편집기 가 정규 를 지원 하고 정규 를 배 웠 습 니 다.우리 의 업무 에 큰 도움 이 되 었 습 니 다.
6.마지막 에 쓴다
마지막 으로 위 에서 말 한 내용 을 요약 한다.
思维导图
정규 표현 식 온라인 검사 도구:https://regex101.com/
정규 표현 식 그룹 과 인용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 정규 표현 식 그룹 과 인용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기