2011-11-03 4 views
1

ID가 여러 섹션이 있습니다.고급 Visual Studio RegEx 바꾸기

<section id="01"></section> 
<section id="02"></section> 
<section id="03"></section> 

내가 뭘하고 싶은 등, (2)는 3이된다, 즉 1은 2가되고, 내가 입수했습니다

일치 자체 + 1이 모든 아이디의 교체까지로 :

find: 
id="{[0-9][0-9]}" 
-- 
replace: 
\0 
+0

우 - Visual Studio 검색 구문을 실제 정규 표현식이라고 부르는 것이 좋습니다. –

+0

오, 그래 - 정상적인 정규 표현식 (... ... Visual Studio)을 사용하여 안정적으로 수행 할 수 없습니다. 매우 제한된 특정 상황에서 일정 정도까지 작동하는 트릭이 있더라도 .... .. –

답변

0

첫 번째 항목을 마지막으로 추가하고 삭제하십시오.

또는 두 개의 항목을 동시에 일치시킬 수 있으며 연속 ID가 아닌 임의의 숫자 만 사용하면 역주를 사용할 수 있습니다.

+0

나는 이것을 작동시키지 못했다 ... 결국 나는 십진법을 사용했다. 예 : '<섹션 ID = "2"> <섹션 ID = "2.1"> <섹션 ID = "3">' – evolutionxbox

1

RegEx를 사용하지 마십시오.

XmlDocument를 사용하여로드하고 XPath를 사용합니다. 다음과 같은 것 :

Dim tDoc as XmlDocument = New XmlDocument(xmlfilename) 
For Each tNode As XmlNode In tDoc.SelectNodes("//sections/section") 
    tNode.Attributes("id").Value = String.Format("{0:D2}", Int16.Parse(tNode.Attributes("id").Value) + 1) 
Next 

tDoc.Save(path) 
+0

그래, 적어도 VS '검색에서 정규식 (생각하고 교체하지 마십시오) 결과에 수학을 수행 할 수있는 기능이 있습니다 ... 단순한 대체 만합니다. – danyim

+0

@danyim : 정규식 매치에서 마지막 매치에서 시작하여 앞으로 나아갈 수있는 일종의 배타적 루프를 수행 할 수 있습니다. 하지만 그 사람은 못 생길거야. –