itsource

문자열에서 하위 문자열을 일치시키는 방법, 대소문자 무시

mycopycode 2023. 8. 30. 21:41
반응형

문자열에서 하위 문자열을 일치시키는 방법, 대소문자 무시

파이썬에서 ignore case string 비교를 찾고 있습니다.

시도한 항목:

if line.find('mandy') >= 0:

하지만 무시 사건은 성공하지 못했습니다.주어진 텍스트 파일에서 단어 집합을 찾아야 합니다.저는 파일을 한 줄 한 줄 읽고 있습니다.줄에 있는 단어는 맨디, 맨디, 맨디 등이 될 수 있습니다(사용하고 싶지 않습니다).toupper/tolower등).

아래 펄 코드에 해당하는 파이썬을 찾고 있습니다.

if ($line=~/^Mandy Pande:/i)

사용하지 않으려는 경우str.lower()정규식을 사용할 수 있습니다.

import re

if re.search('mandy', 'Mandy Pande', re.IGNORECASE):
    # Is True

당신은 찾고 있습니다..lower()방법:

string1 = "hi"
string2 = "HI"
if string1.lower() == string2.lower():
    print("Equals!")
else:
    print("Different!")

그나저나, 여기 또 이 있네요.이것 좀 보세요.

사용할 수 있습니다.in두 문자열 모두에 적용한 후 연산자입니다.

str.casefold 대소문자를 구분하지 않는 비교에 사용하는 것이 좋습니다.

대/소문자를 구분한 문자열 복사본을 반환합니다.대소문자 구분 문자열은 대소문자 구분 없이 일치하는 데 사용할 수 있습니다.

케이스 폴딩은 소문자와 비슷하지만 문자열에서 모든 대소문자 구분을 제거하기 위한 것이기 때문에 더 공격적입니다.예를 들어, 독일어 소문자 'ß'는 "ss"와 같습니다.이미 소문자이므로 lower()는 's'에 아무런 영향을 미치지 않습니다. 대소문자 구분()은 이를 "ss"로 변환합니다.

대/소문자 접기 알고리즘은 유니코드 표준의 섹션 3.13에 설명되어 있습니다.

버전 3.3의 새로운 기능.

대소문자를 구분하지 않는 하위 문자열 검색의 경우:

needle = "TEST"
haystack = "testing"
if needle.casefold() in haystack.casefold():
    print('Found needle in haystack')

대소문자를 구분하지 않는 문자열 비교의 경우:

a = "test"
b = "TEST"
if a.casefold() == b.casefold():
    print('a and b are equal, ignoring case')

시도:

if haystackstr.lower().find(needlestr.lower()) != -1:
  # True
a = "MandY"
a_low = a.lower()
if "mandy" in a_low:
    print("true")

을 둘러보다

다음을 사용할 수도 있습니다.s.lower() in str.lower()

import re
if re.search('(?i)Mandy Pande:', line):
    ...

사용할 수 있습니다.in와 관련된 연산자lower현악기 연주법

if "mandy" in line.lower():

이거 보세요.

In [14]: re.match("mandy", "MaNdY", re.IGNORECASE)
Out[14]: <_sre.SRE_Match object at 0x23a08b8>

판다 시리즈인 경우 case=False in str.dll을 언급할 수 있습니다.

data['Column_name'].str.contains('abcd', case=False) 

또는 두 개의 문자열 비교일 경우 아래의 다른 방법을 시도합니다.

casefold() 메서드를 사용할 수 있습니다.casefold() 메서드는 비교할 때 사례를 무시합니다.

firstString = "Hi EVERYONE"
secondString = "Hi everyone"

if firstString.casefold() == secondString.casefold():
    print('The strings are equal.')
else:
    print('The strings are not equal.')

출력:

The strings are equal.

언급URL : https://stackoverflow.com/questions/6579876/how-to-match-a-substring-in-a-string-ignoring-case

반응형