2017-01-23 3 views
1

나는 메모장 + +를 사용 중이며 특정 태그 안의 다른 단어로 XML 파일의 특정 단어를 찾아서 바꾸려고합니다. 예를 들어문자열에서 부분 문자열을 가져 오는 정규식

는 : XML 파일

<alerts> 
    <ccEmails>[email protected],[email protected]</ccEmails> 
    <toEmails>[email protected]</toEmails>    
</alerts> 

은 내가 https://regex101.com/r/Q8UB6a/1에서 ccEmails.*(example).*ccEmails을 시도 <ccEmails>하지만 하지

<toEmails> 내부에 내부 myexample 옵션 현재와 예를를 교체해야 포함하고, 마지막 발생 만 반환합니다. 또한, 문자열을 다른 문자열로 대체 할 수 없습니다. 내가 ++ 메모장에서 이것을 시도, 난 당신이 특정 태그에 포함 된 문자열을 찾기/바꾸기에서 좀 도와 주 시겠어요 <ccEmails>

enter image description here

내부의 모든 문자열을 얻고있다

. 자세한 내용이 필요한 경우 알려 주시기 바랍니다.

답변

1

, 당신은

(?:<ccEmails>|\G(?!^))[^<]*?\K\bexample\b 

같은 \G 기반 정규 표현식을 사용하고 myexample로 교체해야합니다. online regex demo.

세부를 참조하십시오

  • (?:<ccEmails>|\G(?!^)) - 중 <ccEmails> 또는 마지막으로 성공한 일치
  • [^<]*?의 끝 - \K
  • 가능한 한 적은 수의 < 이외의 0+ 문자 - 지금까지 매칭 된 텍스트를 생략하십시오. - \bexample\b - 전체 단어 example.

enter image description here

0

(<ccEmails>[^<>][email protected])example\.\1myexample.으로 바꾸고 모두 바꾸십시오. 각각의 패스가 필요한 문자열 내에서 하나만 변경하기 때문에 replace-all은 두 번 이상 수행되어야합니다. 당신이 찾기를 사용하여 대화 상자를 교체하려는 경우

관련 문제