python 정규 표현 식 이 역 슬 래 쉬 와 일치 하 는 조작 방법

python 정규 표현 식 일치 반사 봉
정규 모듈 에 원본 문자열 을 전달 하지 않 고 정규 모듈 에 전달 해 야 합 니 다.
r 는 r 뒤의 문자열 을 원본 문자열 로 표시 하고 컴퓨터 가\\전의 문자 로 이해 하 는 것 을 방지 합 니 다.r'^\\$'먼저 원본 문자열 에 따라 copile 함수 에 주 고 정규r'^\\$' \\를\로 번역 합 니 다.

backslash='\\'
print(backslash)
regular_backslash=re.compile(r'^\\$')
print(regular_backslash.search(regular_backslash)
금액 5.00 중.\.으로 매 칭 해 야 한다.정규.에 모든 문자 가 일치 하기 때문에\.표시 점 이 필요 합 니 다.

import re
#    
date_regular = re.compile(r'^(\d{4})-(\d{2})-(\d{2})$')
print(date_regular.search('2017-33-12'))

#        5 5.00    
money_regular = re.compile(r'^(\d{1,})\.(\d{1,})$|^(\d{1,})$')
print(money_regular.match('5.8'))

#     
number_regular = re.compile(r'^\d{1,}$')
print(number_regular.search('5'))
PS:Python 문자열 과 정규 표현 식 의 역 슬 래 쉬('\')문 제 를 살 펴 보 겠 습 니 다.
Python 일반 문자열 에서
Python 에서 우 리 는''로 일부 일반 문 자 를 바 꾸 어 특수 문자 로 만 듭 니 다.예 를 들 어

In [1]: print('abc
def') # '
' abc defg In [2]: print('abc\tdef') # '\t' abc defg
우 리 는 또한''로 특수 문 자 를 바 꾸 어 일반 문자 로 만 들 수 있다.예 를 들 어

In [3]: print('abc\\tdef') #  '\'         ,      
abc\tdef

In [4]: print('abc\'tdef') #  '''         ,           '''         
abc'tde
따라서 python 일반 문자열 에서 우 리 는 홀수''로 끝 낼 수 없습니다.그러면 끝 난 따옴표 가 순수한 문자 로 바 뀌 어 이 문자열 이 따옴표 없 이 끝 날 수 있 습 니 다.
Python 원본 문자열 에서
우 리 는 문자열 앞 에 r'abc'와 같은'r'를 추가 합 니 다.원생 문자열 의 특수 문자 의 특수 한 의 미 는 빼 앗 길 것 입 니 다.다음 과 같 습 니 다.

In [5]: print(r'abc
defg') # '
' , abc
defg In [6]: print(r'abc\tdefg') # '\t' , abc\tdef
여기 서 이상 한 문제 가 있 습 니 다.원생 문자열 에서''는 일반적인 문자열 이 되 었 지만 우 리 는 홀수'문자열 로 끝 낼 수 없습니다.이것 은 Python 정규 표현 식 때 문 입 니 다.정규 표현 식 에서 우 리 는 이 문 제 를 설명 할 것 입 니 다.
Python(regular express)정규 표현 식 에서
Python 정규 표현 식 에 약간의 차이 가 있 을 수 있 습 니 다.정규 표현 식 에 메타 문자(metacharacter)가 지정 되 어 있 습 니 다.다음 과 같 습 니 다.^$*+?{}[]\|()
그것들 은 모두 특수 한 의 미 를 가지 고 있다.''도 원 문자 에 속한다.'Python 의 특수 문자 이자 정규 의 메타 문자 에 속 하기 때문에 사용 할 때 매우 조심해 야 합 니 다.그렇다면 정규 에서'의 역할 은 무엇 일 까?예 를 하나 봅 시다.

In [7]: re.search('.', 'sd.f')        
Out[7]: <_sre.SRE_Match object; span=(0, 1), match='s'>

In [8]: re.search('\.', 'sd.f')       
Out[8]: <_sre.SRE_Match object; span=(2, 3), match='.'>In [9]: re.search('
', 'sdfd
fds') Out[9]: <_sre.SRE_Match object; span=(4, 5), match='
'> """ '.' , , '\' , , '.'; '\' Python 。 """
따라서''의 역할 은 메타 문자 의 특수 한 의 미 를 박탈 하여 Python 문자 로 만 드 는 것 이기 때문에 Python 일반 문자열 에서 의 전의 역할 을 할 수 있 습 니 다.예 를 들 어'는 여전히 줄 바 꿈 을 표시 합 니 다.그래서''는 정규 중의 원 문자 이자 Python 의 특수 문자 입 니 다.그러면 우 리 는 어떻게 순수한 문자 와 일치 해 야 합 니까?
정규 에서''의 역할 은 원 문 자 를 Python 문자열 문자(a Python string literal)로 바 꾸 는 것 이다.그래서 정규 중의'\'는 사실은 Python 문자 중의'''이다.이것 은 여전히 전의 작용 을 하기 때문에 정규 에서 우 리 는 모든''을 한 번 더 바 꿔 야 한다.즉,'\\'이다.그러면 순수한 문자'와 일치 할 수 있다.아래 의 예 를 보시오

In [10]: re.search('\\\\', 'fsd
fds') # '\', In [11]: re.search('\\\\', 'fsd\
fds') Out[11]: <_sre.SRE_Match object; span=(3, 4), match='\\'> # Python ,'\\' '\'
re 에서''를 반복 적 으로 사용 하면 대량의 연속 적 인 역 슬 래 쉬 를 생 성하 여 일부 문자열 을 이해 하기 어 려 울 수 있 습 니 다.해결 방법 은 Python 원생 문자열 로 정규 표현 식 을 쓰 는 것 입 니 다.다음 과 같 습 니 다.

In [12]: re.search(r'\\', 'fsd\
fds') # '\\' '\' Out[12]: <_sre.SRE_Match object; span=(3, 4), match='\\'>
또한,우리 가 정규 표현 식 을 원생 문자열 로 쓸 때,Python 문자 의 특수 문 자 는 여전히 유효 합 니 다.예 를 들 어

In [13]: re.search(r'
', 'fsd
fds') Out[13]: <_sre.SRE_Match object; span=(3, 4), match='
'> """ Python ,r'
' '
', ; ,r'
' 。 '\' , , 。 , Python , '\' 。 """
총결산
파 이 썬 문자열 과 정규 표현 식 의 역 슬 래 쉬('\')문제 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.파 이 썬 문자열 과 정규 표현 식 의 역 슬 래 쉬('\')문제 내용 에 대해 서 는 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기