programing

RegEx를 사용하여 두 XML 태그 사이의 모든 항목 찾기

copysource 2021. 1. 17. 11:50
반응형

RegEx를 사용하여 두 XML 태그 사이의 모든 항목 찾기


에서 RegEx, 나는 둘 사이의 태그와 모든 것을 찾으려면 XML tags다음 등을 :

<primaryAddress>
    <addressLine>280 Flinders Mall</addressLine>
    <geoCodeGranularity>PROPERTY</geoCodeGranularity>
    <latitude>-19.261365</latitude>
    <longitude>146.815585</longitude>
    <postcode>4810</postcode>
    <state>QLD</state>
    <suburb>Townsville</suburb>
    <type>PHYSICAL</type>
</primaryAddress>

태그와 사이의 모든 것을 찾아 primaryAddress지우고 싶습니다 .

primaryAddress태그 사이의 모든 것은 변수이지만 .NET Framework를 가져올 때마다 전체 태그와 하위 태그를 제거하고 싶습니다 primaryAddress.

누구든지 그 방법을 알고 있습니까?


HTML / XML 구문 분석에 정규식을 사용하는 것은 좋지 않습니다.

그러나 어쨌든 그것을하고 싶다면 정규식 패턴을 검색하십시오.

<primaryAddress>[\s\S]*?<\/primaryAddress>

빈 문자열로 바꾸십시오 ...


다음과 일치시킬 수 있어야합니다. /<primaryAddress>(.+?)<\/primaryAddress>/

태그 사이의 콘텐츠는 일치하는 그룹에 있습니다.


이 방법을 사용하는 것은 좋지 않지만 정말 정규식으로 나누고 싶다면

<primaryAddress.*>((.|\n)*?)<\/primaryAddress>

확인 된 답변은 태그를 반환하지만 태그 사이의 값만 반환합니다.


이것은 측면에 속성이 있거나 끝 태그가없는 경우에도 대부분의 가장 바깥 쪽 레이어 태그 쌍을 캡처 할 수 있습니다.

(<!--((?!-->).)*-->|<\w*((?!\/<).)*\/>|<(?<tag>\w+)[^>]*>(?>[^<]|(?R))*<\/\k<tag>\s*>)

편집 : 위의 주석에서 언급했듯이 정규식은 항상 xml을 구문 분석하기에 충분하지 않으며 더 많은 상황에 맞게 정규식을 수정하려고하면 더 길지만 여전히 쓸모가 없습니다.

참조 URL : https://stackoverflow.com/questions/13241615/find-everything-between-two-xml-tags-with-regex

반응형