나는 아래의 시나리오에 대한 올바른 정규 표현식을 찾는 데 문제 :파이썬 정규식 일치 전체 단어
말할 수 있습니다 :
a = "this is a sample"
내가 전체 단어를 일치시킬 - 예를 들어 경기 "hi"
해야 "hi"
은 단어가 아니므로 "is"
은 왼쪽과 오른쪽에 알파 문자가 없으므로 True를 반환해야하므로 False를 반환합니다.
나는 아래의 시나리오에 대한 올바른 정규 표현식을 찾는 데 문제 :파이썬 정규식 일치 전체 단어
말할 수 있습니다 :
a = "this is a sample"
내가 전체 단어를 일치시킬 - 예를 들어 경기 "hi"
해야 "hi"
은 단어가 아니므로 "is"
은 왼쪽과 오른쪽에 알파 문자가 없으므로 True를 반환해야하므로 False를 반환합니다.
the docs에서
re.search(r'\bis\b', your_string)
보십시오 : B \
가 공백이있는 경우, 만 단어의 시작 또는 끝에서.
re
모듈이로 "단어"의 순진한 정의를 사용하여 "숫자의 순서 또는 문자 밑줄" "문자 및 숫자"로케일 또는 유니 코드 옵션에 따라 달라집니다 것을
참고.
감사합니다. 플래그 = re.IGNORECASE를 추가했습니다. – user2161049
word = "test!"에 대해 작동하지 않았습니다. ! 그것을 깨뜨린다. – user2161049
무엇이 ** r **이 문장에서 필요합니다 - re.search (** r ** '\ bis \ b', your_string)? – swordholder
정규 표현식의 문제는 다른 문자열에서 검색하고자하는 문자열에 정규식 문자가 있으면 복잡해집니다. 괄호가있는 문자열은 실패합니다.
이 코드는
word="is"
srchedStr="this is a sample"
if srchedStr.find(" "+word+" ") >=0 or \
srchedStr.endswith(" "+word):
<do stuff>
각 측면에 공간과 두 번째 부분과 텍스트의 조건 검색의 첫 번째 부분 문자열 상황의 끝을 잡는다 단어를 찾을 수 있습니다. re.search()
의 문서에서
>>> x="this is a sample"
>>> y="this isis a sample."
>>> regex=re.compile(r"\bis\b") # For ignore case: re.compile(r"\bis\b", re.IGNORECASE)
>>> regex.findall(y)
[]
>>> regex.findall(x)
['is']
다음 find
이
이 내용을 읽기가 어렵습니다. 편집하십시오. – davejagoda
또한 이미 승인 된 답변이 있음을 알 수 있습니다. 응답을 삭제하고 다운 폰트로 인해 평판을 회복하고 싶을 수 있습니다. – davejagoda
@davejagoda가 답을 삭제하면 평판이 회복됩니까? –
정규식이 사용하는 단어 경계를 시도하는 정수를 반환하는 반면 ENDWITH 부울 있음을 유의하십시오.
It matches the empty string, but only at the beginning or end of a word
E.g. r'\bfoo\b' matches 'foo', 'foo.', '(foo)', 'bar foo baz' but not 'foobar' or 'foo3'
희망 하시겠습니까?
잘못된 게시물과 중복 된 내용으로 폐쇄되었으므로이 질문을 다시 열었습니다. –