>백엔드 개발 >파이썬 튜토리얼 >정규식 '\d'가 숫자만 일치하는 대신 '78.46.92.168:8000'과 같은 IP 주소와 일치하는 이유는 무엇입니까?

정규식 '\d'가 숫자만 일치하는 대신 '78.46.92.168:8000'과 같은 IP 주소와 일치하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-13 06:43:02185검색

Why does the regex

정규식으로 전체 문자열 확인

정규식 "d "를 사용하여 문자열이 숫자인지 확인하려고 하면 다음과 같은 결과가 발생할 수 있습니다. 패턴이 "78.46.92.168:8000"과 같은 IP 주소와도 일치한다는 사실이 발견되었습니다. "d"는 숫자에만 일치한다고 예상할 수 있으므로 혼란스러울 수 있습니다. 이것이 발생하는 이유를 이해하려면 "d"의 동작을 이해해야 합니다.

"d " 이해

"d" 문자 클래스는 모든 문자 클래스와 일치합니다. ASCII 범위(0-9) 내의 한 자리 문자입니다. " " 수량자는 이전 요소(이 경우 "d")가 한 번 이상 나타나는 것을 나타내며, "d "가 하나 이상의 숫자 시퀀스와 일치함을 나타냅니다.

예제 문자열 "78.46. 92.168:8000", 시퀀스 "78"은 "d"에 대한 유효한 일치입니다. 전체 문자열이 아닌 처음 78개와 일치합니다. 일치가 성공하면 코드는 doStuff()를 호출합니다.

전체 문자열 일치

전체 문자열을 일치시키고 숫자만 포함하는지 확인합니다. , 보다 구체적인 정규식 패턴을 사용해야 합니다.

  • **추가 "^" 및 "$":** 정규 표현식에 "^"(문자열 시작) 및 "$"(문자열 끝)를 추가하면 전체 입력 문자열과 일치합니다. 예를 들어, "^d $"는 숫자로만 구성된 문자열에만 일치합니다.
  • "isdigit()" 사용: Python은 문자열에 대해 "isdigit()" 메서드를 제공합니다. 전체 문자열에 숫자만 포함되어 있는지 여부를 나타내는 부울 값입니다. 예를 들어 "78.46.92.168:8000".isdigit()는 문자열에 숫자가 아닌 문자가 포함되어 있으므로 False를 반환합니다.

위 내용은 정규식 '\d'가 숫자만 일치하는 대신 '78.46.92.168:8000'과 같은 IP 주소와 일치하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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