백엔드 개발 파이썬 튜토리얼 Python 정규식에서 백슬래시 이스케이프 기능의 원리에 대한 간략한 분석

Python 정규식에서 백슬래시 이스케이프 기능의 원리에 대한 간략한 분석

Oct 09, 2018 pm 04:01 PM
파이썬 정규식

本篇文章给大家带来的内容是关于浅析python正则表达式中反斜线的转义功能的原理,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

最近深入研读了正则表达式的一本经典著作,对于在python中使用正则表达式时使用反斜线转义功能时有些心得,特与大家分享。

核心思想:在python中使用正则表达式时要切记反斜线具有两层转义功能,如果你要匹配一个反斜线本身时要注意它必须被转义两次。(除非你使用原始字符串,就是字符串前面加r)

我们先来看一个例子:

import re
a = re.match('\\\','\\')
로그인 후 복사
  File "<ipython-input-93-6e1102e416ee>", line 2
    a = re.match('\\\','\\')
                            ^
SyntaxError: unexpected character after line continuation character
로그인 후 복사

上面这个例子本身就不合语法要求,那么为什么呢? 首先在
 python中,因为正则表达式本身是一个字符串,所以它要遵守字符串的规则——反斜线表示转义符
 而在正则表达式中反斜线又是一个具有转义功能的元字符,所以反斜线具备了双重转义功能

回到例子中,第一个转义了第二个,此时第二个去除了字符串转义符的身份,但是它还有正则表达式转义元字符的身份,也就是说第二个仍然具备转义功能,那么它转义谁呢?它只能转义第三个,可是第三个它具备两层身份(字符串的转义符和正则表达式的转义元字符)

所以现在有两种可能情况发生:

第一种,第二个无法转义第三个,因为身份不符,一个是正则表达式转义元字符,另一个是字符串转义符

第二种,第二个转义了第三个,但是这种转义也仅仅是去除了一层身份,但是它还有一层身分(转义元字符)结果就是第三个仍然具有转义功能。

总之不管这时发生了哪种情况,第三个最终结果就是仍然具备转义功能,他会转义它后面的单引号,使得整段代码语法错误。

所以正确的写法是再添加一个反斜线,四个反斜线,两两转义之后最终转义成匹配单独一个反斜线的功能

import re
a = re.match('\\\\','\\')
print(a)
#显示的结果match='\\',之所以显示两个反斜线是因为语法规定一个反斜线无法显示(\是转义符)
로그인 후 복사
<_sre.SRE_Match object; span=(0, 1), match=&#39;\\&#39;>
로그인 후 복사
로그인 후 복사

当然也可以使用原始字符串的方法,在字符串前面加r,这时里面的反斜线就失去字符串转义符的功能了,本文主要讨论实质原理,不是方法

import re
a = re.match(r'\\','\\')
print(a)
로그인 후 복사
<_sre.SRE_Match object; span=(0, 1), match=&#39;\\&#39;>
로그인 후 복사
로그인 후 복사

위 내용은 Python 정규식에서 백슬래시 이스케이프 기능의 원리에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Word 파일 처리에 Python 정규식을 사용하는 방법 Word 파일 처리에 Python 정규식을 사용하는 방법 Jun 22, 2023 am 09:57 AM

Python 정규식은 Word 파일 처리에서 텍스트, 스타일 및 형식을 신속하게 식별하고 바꾸는 데 도움이 되는 강력한 일치 도구입니다. 이 기사에서는 Word 파일 처리에 Python 정규식을 사용하는 방법을 소개합니다. 1. Python-docx 라이브러리 설치 Python-docx는 Python에서 Word 문서를 처리하기 위한 기능 라이브러리입니다. 이를 사용하여 Word 문서를 빠르게 읽고, 수정하고, 생성하고 저장할 수 있습니다. Python-docx를 사용하기 전에 다음 사항을 확인해야 합니다.

Python 정규식을 사용하여 숫자와 금액을 처리하는 방법 Python 정규식을 사용하여 숫자와 금액을 처리하는 방법 Jun 23, 2023 am 08:21 AM

Python 정규식은 텍스트 데이터에서 정확하고 효율적인 일치 및 검색을 수행하는 데 도움이 되는 강력한 도구입니다. 정규식은 숫자와 금액 처리에도 매우 유용하며, 숫자와 금액 정보를 정확하게 찾아 추출할 수 있습니다. 이 기사에서는 Python 정규 표현식을 사용하여 숫자와 금액을 처리하는 방법을 소개하여 독자가 실제 데이터 처리 작업에 더 잘 대처할 수 있도록 돕습니다. 1. 프로세스 번호 1. 정수와 부동 소수점 숫자를 일치시킵니다. 정규식에서 정수와 부동 소수점 숫자를 일치시키려면 d+를 사용하여 일치시킬 수 있습니다.

컨테이너 오케스트레이션을 위해 Python 정규식을 사용하는 방법 컨테이너 오케스트레이션을 위해 Python 정규식을 사용하는 방법 Jun 22, 2023 am 09:16 AM

컨테이너 오케스트레이션에서는 일부 정보를 필터링, 일치 및 교체해야 하는 경우가 많습니다. Python은 이러한 작업을 완료하는 데 도움이 되는 강력한 도구인 정규식을 제공합니다. 이 문서에서는 정규식에 대한 기본 지식, Pythonre 모듈 사용 방법, 몇 가지 일반적인 정규식 애플리케이션을 포함하여 컨테이너 오케스트레이션을 위해 Python 정규식을 사용하는 방법을 소개합니다. 1. 정규식에 대한 기본 지식 정규식(RegularExpression)은 텍스트 패턴을 의미하며,

단어 분할을 위해 Python 정규식을 사용하는 방법 단어 분할을 위해 Python 정규식을 사용하는 방법 Jun 23, 2023 am 10:37 AM

Python 정규 표현식은 텍스트 데이터를 처리하는 강력한 도구입니다. 자연어 처리에서 단어 분할은 텍스트를 개별 단어로 분리하는 중요한 작업입니다. Python에서는 정규식을 사용하여 단어 분할 작업을 완료할 수 있습니다. 다음은 Python3을 예로 들어 단어 분할에 정규식을 사용하는 방법을 소개합니다. re 모듈 가져오기 re 모듈은 Python의 내장 정규식 모듈입니다. 먼저 모듈을 가져와야 합니다. 정의 텍스트 가져오기

콘텐츠 추출을 위해 Python 정규식을 사용하는 방법 콘텐츠 추출을 위해 Python 정규식을 사용하는 방법 Jun 22, 2023 pm 03:04 PM

Python은 콘텐츠 추출을 보다 쉽고 효율적으로 만들어주는 풍부한 라이브러리 및 도구 세트를 갖춘 널리 사용되는 고급 프로그래밍 언어입니다. 그 중에서 정규표현식은 매우 중요한 도구인데, 파이썬은 내용 추출을 위해 정규표현식을 사용할 수 있도록 re 모듈을 제공합니다. 이 문서에서는 콘텐츠 추출을 위해 Python 정규식을 사용하는 방법에 대한 구체적인 단계를 소개합니다. 1. 정규식의 기본 구문을 이해합니다. 콘텐츠 추출을 위해 Python 정규식을 사용하기 전에 먼저 정규식의 기본 구문을 이해해야 합니다.

데이터 구조 및 알고리즘에 Python 정규식을 사용하는 방법 데이터 구조 및 알고리즘에 Python 정규식을 사용하는 방법 Jun 22, 2023 pm 08:01 PM

Python 정규식은 패턴 일치를 기반으로 하는 문자열 처리 도구로, 텍스트에서 필요한 정보를 빠르고 효율적으로 추출하는 데 도움이 됩니다. 데이터 구조와 알고리즘에서 정규식을 사용하여 텍스트 일치, 교체, 분할 및 기타 기능을 구현하여 프로그래밍에 더욱 강력한 지원을 제공할 수 있습니다. 이 기사에서는 데이터 구조 및 알고리즘에 Python 정규식을 사용하는 방법을 소개합니다. 1. 정규식에 대한 기본 지식 시작하기 전에 먼저 정규식에 대한 기본 지식을 이해해 보겠습니다. 문자 집합: 대괄호로 표시,

코드 리팩토링을 위해 Python 정규식을 사용하는 방법 코드 리팩토링을 위해 Python 정규식을 사용하는 방법 Jun 23, 2023 am 09:44 AM

일상적인 코딩에서는 코드의 가독성과 유지 관리성을 높이기 위해 코드를 수정하고 재구성해야 하는 경우가 많습니다. 중요한 도구 중 하나는 정규식입니다. 이 기사에서는 코드 리팩토링을 위해 Python 정규식을 사용하는 방법에 대한 몇 가지 일반적인 기술을 소개합니다. 1. 찾기 및 바꾸기 정규 표현식에서 가장 일반적으로 사용되는 기능 중 하나는 찾기 및 바꾸기입니다. 코드의 모든 인쇄 문을 로깅 문으로 바꿔야 한다고 가정해 보겠습니다. 이를 찾기 위해 다음 정규 표현식을 사용할 수 있습니다: prints*((.

코드 미학과 사용자 경험을 위해 Python 정규식을 사용하는 방법 코드 미학과 사용자 경험을 위해 Python 정규식을 사용하는 방법 Jun 22, 2023 am 08:45 AM

소프트웨어 개발에서는 코드 미학과 사용자 경험이 무시되는 경우가 많아 실제 사용 시 많은 소프트웨어 문제가 발생합니다. 강력한 프로그래밍 언어인 Python은 이러한 문제를 해결하는 데 도움이 되는 강력한 도구로 정규식을 제공합니다. 이 기사에서는 코드 미학과 사용자 경험을 위해 Python 정규식을 사용하는 방법을 소개합니다. 1. Python 정규식 소개 정규식은 텍스트 패턴을 설명하는 언어이며 텍스트를 일치시키고, 찾고, 바꾸고, 분할하는 데 사용할 수 있습니다. Python의 re 모듈은 다음을 제공합니다.

See all articles