2016-12-01 1 views
-1

저는 다소 이상한 상황에서 정규 표현식 초보자입니다. 따옴표 안에없는 모든 한 자리 숫자 (특히 1-9, 나는 0이 필요 없음)를 찾으려고합니다.정규식을 사용하여 따옴표가없는 숫자 만 캡처하십시오.

예를 들어 이제 나는 다음과 같은 문자열이 있다고 가정 해 봅시다 : "1" or 1 ?

나는 1하지만 "1" 일치해야합니다.

아이디어가 있으십니까?

답변

1

는 파이썬에서 이것을 설명 할 것이다 :

import re 
pattern = re.compile('(?<!"|\d)\d(?!"|\d)') 
print(pattern.findall('1,"2",34,5')) 
# ['1', '5'] 

이 정규식 ((?<!"|\d)\d(?!"|\d))의 중요한 부분이 부정적 예측 (?!)과 부정 lookbehind (?<!를)입니다. 정규 표현식 엔진이 고정 길이 문자열을 일치시키지 못하게하는 데 사용됩니다.

자세한 설명은 다음에서 찾을 수 있습니다. http://www.regular-expressions.info/lookaround.html

+0

정말 고마워요! –

관련 문제