나는 현재 두 문자열 사이의 모든 것을 일치시키는 정규식을 얻은 다음 이 첫 번째 일치 내에서 여러 줄 을 일치시키는 데 어려움을 겪고 있습니다.
그래서 나는 이것에서 가려고 노력하고 있습니다
if
{
// A comment
foo(c.AAA);
bar(c.AAA);
foobar(c.AAA);
}
else
{
foo(c.AAA);
bar(c.AAA);
foobar(c.AAA);
}
이에
if
{
// A comment
foo(c.BBB);
bar(c.BBB);
foobar(c.BBB);
}
else
{
foo(c.AAA);
bar(c.AAA);
foobar(c.AAA);
}
댓글과 ELSE라는 단어 사이 의 모든 것을 일치시킬 수 있습니다.
하지만 그런 다음 "c.AAA"를 일치시키고 대량으로 "c.BBB"로 대체 할 수 있기를 원합니다.
어떤 도움을 주시면 감사하겠습니다!
편집 : 명확성을 위해 내가 특별히 사용하는 코드가 C #이고 찾기 및 바꾸기가 많은 파일에서 발생한다고 추가하고 싶었습니다. 정규식으로 이것이 가능한지 찾는 데 여전히 관심이 있으므로 이전에 언급하지 않았습니다.
코드 리팩터링
auto arg = c.AAA;
if (xyz) {
arg = c.BBB;
}
foo(arg);
bar(arg);
foobar(arg);
편집하다
C #의 경우 다음과 같이 작성할 수 있습니다.
var arg = c.AAA;
if (xyz) {
arg = c.BBB;
}
foo(arg);
bar(arg);
foobar(arg);
편집 2
Regex로 할 수는 있지만 VSC로 작동하지 못했습니다.
Notepad ++를 사용하면 부정 문자 집합이 있는 정규식 검색 에 개행 문자가 포함됩니다.
메모장에서 ++, 당신은 Find in Files
에 Find/Replace
대화 그리고 파일에서 만든 교체의 수를 표시합니다. 확인란을 선택 Follow current doc
하고In all sub-folders
찾기: (// A comment[^}]+?)c\.AAA
바꾸다: \1c.BBB
검색 모드 : 정규식
교체 횟수가 0이 될 때까지이 찾기 / 바꾸기 적용
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다