2014-04-20 4 views
1

다음 정규 표현식은 입증 된 바와 같이, 파이썬에서 유효합니다 다른 언어가 정규식을 다르게 처리합니까?

pattern = /'[a-z]'/ 
pattern.test('a') 
false 

방법이 될 수있다 : 자바 스크립트에서

>>> pattern = "[a-z]" 
>>> re.findall(pattern,"a") 
['a'] 

는하지만, equivalant 코드는 결과를 생성하지 않는 이유는 무엇입니까? 그것은 정확하게 동일한 정규 표현식 코드입니다. 언어가 처리하는 방식에 약간의 차이가 있다고 생각하게 만듭니다. 이 경우인가요?

+3

아마 Javascript에는 큰 따옴표가 필요하지 않기 때문에 가능합니다. –

+0

Nope. 아직도 작동하지 않습니다. –

+0

패턴에 전혀 따옴표가 없습니다! 자바 스크립트에서는 패턴을 구분하기 위해 슬래시 만 필요합니다. –

답변

3

패턴에 문자 그대로 따옴표가 있습니다. 귀하의 패턴은 "'a'"과 일치하지만 "a"은 일치하지 않습니다.

그래서 당신이 세계로 pattern을하지 않으려면
pattern = /'[a-z]'/ 

오히려 할당에

pattern = /[a-z]/ 

또는

pattern = new RegExp("[a-z]") 

사용 var pattern을 쓰지 않는다.

관련 문제