나는 작업 중이며 오늘 밤에 큰 차이점을 발견 한 응용 프로그램을 가지고 있습니다. 여기에 문서를 작성하고 다른 사람이 그것을 복제하거나 설명 할 수 있는지를 생각했습니다. 쿼리는 최대했으나 문제를 보여줍니다된다PostgreSQL 정규식 일치 버전
select
'123' ~ '^\d+$' as result_1,
'123' ~ '^[0-9]+$' as result_2
내가 윈도우 7에서 실행중인 PostgreSQL의 버전 9.1을 가지고 있고이 쿼리를 실행할 때 내가 얻을를 :
나는 우분투 10.04에 PostgreSQL의 V9.0에 대한 쿼리를 실행할 때T, T
그러나, 내가 얻을 :
F, T
따라서 PostgreSQL은 "\ d"를 처리 할 때 v9.0과 v9.1 사이에서 변경되었거나 Windows와 Ubuntu간에 설치된 libs 사이에 차이점이있는 것으로 보입니다.
어느 쪽이든, 나는 민간인이 당신의 체크 제약 등이 둘 사이에서 똑같이 행동하지 않을 수도 있다고 생각한다.
참고 : 불행히도 9.0을 실행하는 Windows 7 상자에 쉽게 액세스 할 수 없거나 거기에서도 테스트 할 것입니다.
누구든지 설명 할 수 있습니까? 그것이 잘 알려져 있다면, 용서해주십시오. 내가봤을 때 대답을 못 봤어. 분명히해야 할 일은 양쪽 위치에서 모두 작동하기 때문에 [0-9]를 사용하는 것입니다. 그러나 다시 한번 이것이 왜 일어나는지 알고 싶습니다.
감사! 훌륭한 대답과 설명. 나는 '123'~ E '^ \\ d + $'을 result_1로 테스트했으며, Windows와 Linux 모두에서 작동하며 9.0과 9.1 모두에서 작동합니다. –