2011-08-02 1 views
1

병합과 함께 사용되는 문자열, 잘못된 자리 표시 자 또는 이와 유사한 것을 포함하여 현지화에 나쁜 문자열을 감지하는 SQL 쿼리를 작성하려고합니다.현지화에 나쁜 영어 문자열을 찾아내는 SQL 쿼리

:

  • Go to - 후행 공간
  • Subscribe to
  • 있다 - 뭔가를,이 자리 표시해야한다.
  • 아무것도 대문자 나 숫자
  • 로 시작하지
  • 다른 (아이디어와 함께 자유롭게)

나는 완벽한 솔루션이 그것을 얻을 절대적으로 정상입니다 것을 충분히 알고 false positive.

여전히 번역에 보내기 전에 조사해야 할 문자열 목록을 컴파일하는 것이 매우 유용합니다.

+0

난 정말 내가 실제 코드에서이 검색 것입니다 ... 그 작동합니다 생각하지 않습니다. 이것은 정규 표현식이나 SQL 문으로는 수행 할 수 없습니다. 나는 어휘 분석이나 인공 지능으로 갈 것입니다. 이것은 감지하기가 정말 어렵습니다. –

답변

0

가 이미이 일을위한 몇 가지 조건을 가지고 현재 위치 :

SELECT text FROM strings WHERE 
    text REGEXP '[[:<:]](of|per|as|with|to|from|at|with)\s*$' >= 1 
    /* ending with a preposition*/ 

    OR (NOT text REGEXP '^[A-Z0-9{]') 
    /* starting with lowercase...?*/ 

    OR text LIKE '%{0}%' 
    /* placeholders should be named not numbered */ 

    OR text REGEXP '\&(nbsp|gt|lt|amp|quot|tab|copy);' 
    /* HTML entities should be escaped by the code, here we need only Unicode */ 

    OR text REGEXP '%[0-1\.\$\*][sdifFeEgGxXocpn)]' 
    /* detect printf() placeholders */