2012-07-20 2 views
1

잘못된 내보내기 도구로 인해 잘못된 문자가 가득하고 Excel 스프레드 시트 (* .xls)에서 가져온 메모 필드가있는 데이터가 있습니다.PostgreSQL에서 기호 문자 바꾸기

문자 참조 "& #xb"은 (는) 잘못된 XML 문자입니다.

다음과 같은 wingdings 문자를 바꾸려면 어떻게해야합니까? 성별 기호, 블록, PostgreSQL의 기호는 무엇입니까?

나는이 문자들을 replace 문이나 그와 같은 것에 복사해서 붙여 넣으려고했으나 쓸모 없었다. 영숫자가 아닌 문자 또는 "- = +"문자를 대체하는 RegExp를 통한 방법이 있습니까? 어떤 도움을 주시면 감사하겠습니다.

+0

이 질문을 확인하십시오 : http://stackoverflow.com/questions/336210/regular-expression-for-alphanumeric-and-underscores – BlackVegetable

+0

향후 게시물에 귀하의 PostgreSQL 버전을 보여주십시오. 다른 버전은 기능이 서로 다르기 때문에 중요합니다. –

답변

2
SELECT regexp_replace('123xabcABCxöäüxÖÄÜx¡‘’xæćčx=+-x"§$%&/()x' 
        ,'[^a-zA-Z0-9=+-]','_','g') 

결과 :

123xabcABCx___x___x___x___x=+-x________x 

[^a-zA-Z0-9=+-] 그것을 부정 문자 클래스에있는 주요한 ^. "모든 문자 아니요 다음 목록"을 읽으십시오.

문자 클래스의 끝에 (또는 시작 부분에) - 문자를 두어주의하십시오. 그렇지 않으면 a-z과 같은 특별한 의미가 있습니다.

"전역 적으로"의 경우 네 번째 매개 변수 'g'에 유의하십시오. 그것이 없으면 첫 경기 만이 교체 될 것입니다.

öäü 같은 문자도 어떻게 바뀌는가에 유의하십시오. 당신은 또는 따라서, 당신은 unaccent() 기능을 제공하는 unaccent 확장에 관심이있을 수 있습니다 ... 그 싶지 않을 수도 있습니다

unaccent() 함수는 주어진 문자열에서 액센트 (분음 부호)를 제거합니다.

here 설명서의 PostgreSQL 정규식에 대한 세부 정보입니다.

+0

이것은 매우 도움이되었습니다. 고맙습니다. – MISMajorDeveloperAnyways