현재 등호 주위에 공백을 추가하여 일부 파이썬 스크립트의 가독성을 높이려고 노력하고 있습니다. 예를 들어 현재 할당은 다음과 같습니다.
foo=4
bar[index]=4
다음으로 변경하고 싶습니다.
foo = 4
bar[index] = 4
나는 이미 다음과 같은 답변 된 질문 Notepad ++ : 검색 및 바꾸기를 정규식으로 찾았습니다 . 이것은 "찾을 내용"에서 다음 정규식을 사용하는 것이 작동해야 함을 제안합니다.
(?<=[\w\]\)])=(?=\w)
Notepad ++는 해당하는 모든 등호를 올바르게 찾지 만 내가 무엇으로 바꾸려고해도 그것들을 바꾸지 않습니다. 나는 지금 사용하고있다 :
([\w\]\)])=(\w)
"무엇을 찾기"와 함께 :
\1 = \2
작업을 수행하는 "replace with"에서. 그러나 초기 정규식이 작동하지 않는 이유를 이해하지 못합니다. 특히 링크 된 질문에서 올바른 것으로 표시되어 있기 때문에 특히 그렇습니다. Notepad ++ 6.6.1 또는 6.6.8에서는 작동하지 않습니다. 정규 표현식에 익숙하지 않고 Notepad ++에서 사용하는 것은 이번이 처음이므로 도움을 주시면 감사하겠습니다.
편집 : 명확히하기 위해 : 어떤 시도에서도 "바꿀 내용"필드를 비워 두지 않았지만 항상 =
다른 문자열이나 다른 문자열로 채워 넣었습니다 . 내 초기 정규식의 경우 \1 = \2
.
그러나 나는 문제를 확인했다고 생각합니다. 지금까지 모든 제안을 시도했지만 작동하지 않는 것 같습니다. 그러나 "replace"대신 "replace all"을 클릭하자마자 Notepad ++는 내 초기 정규식으로도 모든 것을 올바르게 교체했습니다. 이것이 의도 된 동작인지 확실하지 않습니다.
해당 질문에 대한 허용 된 답변에는 검색 표현식 만 포함됩니다. 질문 asker는 대체 문자열이 비어 있어야한다는 주석을 남겼습니다. 그것은 일치하는 것을 삭제하는 것입니다.
여기서 수행하려는 작업은 =
연산자를 완전히 삭제하는 것이 아니라 (스크립트가 매우 치명적으로 손상 될 수 있으므로!) 단순히 공백을 채우는 것입니다.
원래 정규식이 수행하는 작업 :
(?<=[\w\]\)])=(?=\w)
어떤 =
캐릭터를 찾으십니까?
\w
, ]
또는 중 하나가 앞에옵니다.)
(?<=[\w\]\)])
\w
와 같이 뒤에 (?=\w)
.(?<=)
및 (?=)
부분은 lookbehind 및 내다 주장 , 각각되지 캡처 그룹 . 원래 정규식은 아무것도 캡처하지 않으므로로 바꾸면 \1 = \2
예상대로 작동하지 않습니다.
작업 정규식에서 :
([\w\]\)])=(\w)
?<=
및 ?=
토큰은 두 개의 괄호로 캡처 그룹을 만드는 제거됩니다. 이렇게하면 \1 = \2
역 참조가 작동하여 첫 번째 캡처, =
기호 및 두 번째 캡처 사이에 적절하게 공백을 삽입 할 수 있습니다 .
참고로 (이미 작동하는 솔루션을 찾았으므로) 원래 정규식을 작동시킬 수 있지만 대체 문자열은 단순히 =
공백 으로 둘러싸 야합니다. lookbehind 및 lookahead assertion에 의해 테스트되는 항목은 실제로 선택되지 않습니다. 일치하는 유일한 문자는 =
부호 자체입니다. 따라서 교체 할 때 사라지지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다