2014-04-28 2 views
3

내 SVG 파일이 있습니다메모장 ++ 정규 표현식 "반올림 번호"

d=" 
m49.84965,40.23129 
l99.5682,19.94812 
l0.2192,100.11412 
l-100.78656,-19.99842 
z" 

내가 좌표를 반올림 할 :

d=" 
m50,40 
l100,20 
l0,100 
l-100,-20 
z"/> 

전체 문서가 훨씬 더 크다.

\.[]\d* 

하지만 훨씬 더 많은 작업을했다 높은 소수점을 반올림

이 : 내가 처리했을 때

0\.[56789]\d* ;replace with: 1 
1\.[56789]\d* ;replace with: 2 
2\. ... 

그것은, 복잡하기 시작했다 나는 5 다음 낮은 진수를 삭제하는 정규 표현식을 사용 -19.99842

어떻게 처리해야합니까?

+1

나는 정규식 정말 ... 그것은 파일에 읽을 수있는 작은 C 프로그램 등을 작성하는 더 적합 할 수 있습니다 이것의 둥근 부분에 대한 의미가 있는지 모르겠어요 거기에 반올림을해라. – user3334690

+0

나는 단지 Notepad ++의 치환 상자를 사용했다 : [그림] (http://appdevonsharepoint.com/wp-content/uploads/2013/10/RegExFind.png) 그것은 아니다. 이걸로 숫자를 늘릴 수 있겠지, 안 그래? – Kardaw

+0

나는 당신이하고있는 일을 이해하고있다 ... 나는 단지 그것이 당신이 원하는 것을하기에 충분하지 않거나 편리하지 않을 수도 있다고 생각한다 ... – user3334690

답변

2

Notepad ++에서 할 수 있는지 확실하지 않은 경우 PowerShell을 사용합니다. 그렇게하면 정규식과 숫자 함수를 섞을 수 있습니다. 이런 식으로 뭔가 :

gc YourFileName | % {$l = $_; [regex]::Matches($_, '[\d.]+') | % { 
$l = $l -Replace $_.Value, ([Int32]$_.Value).ToString()}; $l} | Out-File YourNewFileName