대소문자 변환 단축키를 사용할 때 문자열에 영향을 주지 않는 방법

대소문자 변환 단축키를 사용할 때 문자열에 영향을 주지 않는 방법

저는 Oracle SQL Developer를 사용하여 쿼리를 실행합니다. "소문자로 변환" 단축키가 '아포스트로피' 안의 텍스트에 영향을 주지 않았으면 좋겠습니다.

Notepad++는 보기에 훨씬 더 쉽기 때문에 거기에 쿼리를 작성한 다음 복사하여 Oracle에 붙여넣습니다. Oracle에서 사용했던 모든 단축키를 N++에 매핑했는데 이제 문자열도 소문자로 변환됩니다.

이것을 막을 수 있는 방법이 있나요?

예:

CASE
WHEN table.attribute = 'CaseSensitiveStringValue'
  THEN 'OutcomeValue'
  ELSE 'OTHERValue'
END AS CASEName

모두 소문자로 변환하면 SQL Developer는 다음과 같습니다.

case
when table.attribute = 'CaseSensitiveStringValue'
  then 'OutcomeValue'
  else 'OTHERValue'
end as casename

변환의 영향을 받지 않는 문자열을 확인하세요. Notepad++에서 소문자로 변환 결과는 다음과 같습니다.

case
when table.attribute = 'casesensitivestringvalue'
  then 'outcomevalue'
  else 'othervalue'
end as casename

문자열을 포함한 모든 텍스트는 이제 소문자입니다. 값이 대소문자를 구분하는 경우 코드가 손상됩니다.

답변1

Notepad++에서 찾기 및 바꾸기 기능 사용:

  • Ctrl+H
  • 무엇을 찾다:'[^']+'(*SKIP)(*FAIL)|\w+
  • 다음으로 교체:\L$0
  • 둘러보기 확인
  • 정규식 확인
  • Replace all

설명:

'[^']+'         # NOt a single quote between 2 single quote (i.e. strings we don't want to convert)
(*SKIP)         # skip this string
(*FAIL)         # fail to match
|               # OR
\w+             # 1 or more word character

대사:

\L$0        # lowercase the whole match (i.e. the string NOT between quotes)

주어진 예에 대한 결과:

case
when table.attribute = 'CaseSensitiveStringValue'
  then 'OutcomeValue'
  else 'OTHERValue'
end as casename

화면 캡처:

여기에 이미지 설명을 입력하세요

관련 정보