2011-09-14 2 views
2

우선, XML을 수정하기 위해 정규 표현식을 사용하지 말아야한다는 것을 알고 있습니다. 어쨌든 이것을 수행해야하며 파서를 사용하지 않는 특별한 경우입니다. 만 태그에서 [모든 문자]하지만 - 나는 [어떤 편지]를 제거하려면, 간단히 말해서Regex XML 태그 만 바꾸기 (내용 아님)

<nicetag_>Teststring X-Y</nicetag_> 

:

<nicetag_A-B>Teststring X-Y</nicetag_A-B> 

는 다음과 같이하려면 다음

나는이 원하는 내부의 실제 콘텐츠가 아닙니다.

이 내 정규식은 지금까지입니다 :

Regex.Replace(inputString, @"(<.*?[a-zA-Z])\-([a-zA-Z].*?>)", "$1$2"); 
이의 문제는 태그가 AB없이 이름을 지정해야합니다 경우에만 위의 예를 들어 작동한다는 것입니다

, 내부 컨텐츠 (XY)를 대체 할 것 대신.

아이디어가 있으십니까?

답변

1

예제가 작동하지 않습니다. 태그의 하이픈 만 바꾸고 있습니다.

online here on Regexr

+0

완벽하게 작동했습니다. 그리고 예, Regexr 엉덩이 킥 :) – Andreas

0

.* 대신 [^>\s]* (공백 문자는 >이고 공백 문자는 제외)을 시도해 볼 수 있습니다. 그래도 태그 이름을 계속 사용할 수 있습니다.

0

그냥 >[a-zA-Z]-[a-zA-Z]>을 대체 할 수없는 경우를 참조하십시오 여기

(<[^>]*)[a-zA-Z]\-[a-zA-Z]([^>]*) 

을이 시도하고 $1$2

로 교체?