메모장 + +로 일부 svg 좌표를 구문 분석하려고합니다. 각 레이어의 좌표 집합을 가져 와서 [] 안에 좌표를 넣어서 자바 스크립트 배열에서 사용할 준비가되었습니다.문자열을 제외한 파일의 모든 것을 삭제하는 정규식
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="800px"
height="900px" viewBox="0 0 800 900" enable-background="new 0 0 800 900" xml:space="preserve">
<g id="Layer_3">
<polyline fill="none" stroke="#0000FF" stroke-width="3" points="33,108 66,141 99,174 99,207 132,207 165,207 165,240 "/>
</g>
<g id="Layer_4">
<polyline fill="none" stroke="#0000FF" stroke-width="3" points="132,306 165,306 165,339 165,372 132,405 99,405 99,438 132,438
165,438 "/>
</g>
<g id="Layer_5">
<polyline fill="none" stroke="#0000FF" stroke-width="3" points="198,339 231,339 264,372 297,372 330,405 363,438 396,438 "/>
</g>
<g id="Layer_6">
<polyline fill="none" stroke="#0000FF" stroke-width="3" points="198,174 198,273 231,306 264,306 "/>
</g>
<g id="Layer_7">
<polyline fill="none" stroke="#0000FF" stroke-width="3" points="231,174 231,240 264,273 297,273 "/>
</g>
<g id="Layer_9">
<polyline fill="none" stroke="#0000FF" stroke-width="3" points="396,306 462,306 495,339 495,372 528,405 528,438 561,438
594,471 "/>
</g>
<g id="Layer_10">
<polyline fill="none" stroke="#0000FF" stroke-width="3" points="660,504 561,504 495,504 "/>
</g>
</svg>
내가 이런 걸보고 결과를 싶습니다 :
은 SVG 파일은 다음과 같습니다
[33,108 66,141 99,174 99,207 132,207 165,207 165,240]
[132,306 165,306 165,339 165,372 132,405 99,405 99,438 132,438 165,438]
[198,339 231,339 264,372 297,372 330,405 363,438 396,438]
[198,174 198,273 231,306 264,306]
[231,174 231,240 264,273 297,273]
[396,306 462,306 495,339 495,372 528,405 528,438 561,438 594,471]
[660,504 561,504 495,504]
나는 정규 표현식에 아주 새로운 해요,하지만 여기 내 미약 한 시도이다 : 대
검색 :. ". (+") + 포인트 =
교체 [$ 1]
검색 부분이 "points"문자열 위의 줄을 검색하지 않는 것 같아서 붙어 있습니다. 문서에 훨씬 더 많은 쓰레기가 있더라도 좌표 이외의 모든 것을 제거 할 수 있습니까?
XML을 정규식으로 구문 분석하지 마십시오. 실제 XML 파서를 사용하십시오. 이것은 SO에 대해 약 백만 번 언급되었습니다. 망치를 사용할 수 있도록 손톱을 모두 만들지 말고 적절한 도구를 사용하십시오. –
저는 동적으로 구문 분석하지 않습니다. Notepadd ++가 이런 기본적인 오프라인 편집 작업을하지 않아야하는 이유를 설명해 주시겠습니까? –
하지만, 일회성 일이라면 여러 연산을 사용하여 필요한 결과를 얻을 수 있으며 단일 정규식에서 시도하고 수행 할 필요가 없습니다. 되풀이 작업 (정기적으로 수행해야하는 작업) 인 경우 XML 파서를 사용하면 크게 단순화 할 수 있습니다. (나는 혼란 스럽다. 어쨌든, 당신의 질문은 "포인트"값을 구하는 것에 대해 질문하지만, "포인트"가 사용되지 않는 이유는 묻는다. 당신은 "포인트"값을 물었다. " "c"로 시작하는 단어. 잠깐. 첫 번째 "c"단어 앞에 "a"와 "b"단어가 올바르게 작동하지 않습니다. ") –