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 , '\' 。
"""
총결산파 이 썬 문자열 과 정규 표현 식 의 역 슬 래 쉬('\')문제 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.파 이 썬 문자열 과 정규 표현 식 의 역 슬 래 쉬('\')문제 내용 에 대해 서 는 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.