그래서 숫자가 정수인지 알리는 정규 표현식을 사용합니다.Python의 정규식에서 n을 무시하는 방법은 무엇입니까?
regex = '^(0|[1-9][0-9]*)$'
import re
bool(re.search(regex, '42\n'))
True를 반환하고,이 아닌가요? 어디에서 문제가 발생합니까? documentation에서
그래서 숫자가 정수인지 알리는 정규 표현식을 사용합니다.Python의 정규식에서 n을 무시하는 방법은 무엇입니까?
regex = '^(0|[1-9][0-9]*)$'
import re
bool(re.search(regex, '42\n'))
True를 반환하고,이 아닌가요? 어디에서 문제가 발생합니까? documentation에서
:
'$'
은 문자열의 끝과 일치하거나 문자열의 끝에서 줄 바꿈하기 전에
대신 \Z
을보십시오.
또한, 언제든지 당신이 ^
또는 \A
로 시작하고 $
또는 \Z
로 끝나는 정규 표현식을 작성하는 자신을 발견 할 의도는 전체 문자열과 일치하는 경우, 당신은 아마 대신 re.search
의 re.match
를 사용 (및 생략한다 regex의 경계 마커).
실제로 일했습니다. 고마워요! – user253956
정규식 수 ahould regex = '\b^(0|[1-9][0-9]*)$\b'
질문 경기에서 정규식 -> 라인, 숫자의 시작과 라인의 끝. 그리고 주어진 문자열은 그것과 일치합니다. 왜 그것이 사실로 돌아가고 있는지. 숫자가있을 때 False를 반환하려면 "!"을 사용할 수 있습니다. NOT을 나타냅니다.
는 참조 https://docs.python.org/2/library/re.htmlregex = '!(0|[1-9][0-9]*)$'
bool(re.search(regex, '42\n')) => (Returns false)
그래, $ 하나의 \ 일치 N이 끝나기 전에 트랩/불일치의 일종이다. 파이썬에 대한 정규식 트랩 목록을 확인하십시오 : http://www.cofoh.com/advanced-regex-tutorial-python/traps
[여러 줄에 걸쳐있는 파이썬 정규식] (http://stackoverflow.com/questions/1870954/python-regular-expression-across-multiple-lines) – Chris
거기에 무엇이 머물러 있지 않은지 완전히 알아보십시오. – user253956
나는 그것이 그것의 중복이라고 생각하지 않는다. 해결책은 다릅니다. 게다가, 그 질문은 명확하지 않습니다. –