regex - Notepad++ 正则表达式 "rounding numbers"

标签 regex svg rounding shapes

我的 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"/>

整个文档要大得多。我使用正则表达式删除小于 5 的小数:

\.[01234]\d*

但是随着小数点的四舍五入,我需要做更多的工作:

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

开始变得复杂,当我不得不处理像这样的数字时:-19.99842

我该如何处理?

最佳答案

不确定是否可以只在 Notepad++ 中完成,我会使用 Powershell。这样你就可以混合使用正则表达式和数字函数。像这样:

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

关于regex - Notepad++ 正则表达式 "rounding numbers",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23344969/

相关文章:

python - 为什么对于整数而不是 float ,ndigits=None 上的 round 加注?

python - 无法让 Scrapy 跟踪链接

javascript - 搜索价格文本,执行功能,并替换为输出

javascript - 修改svg xlink :href through knockout attr binding

javascript - snap.svg 库中的克隆如何工作?

css - 带有CSS的图像的圆形阴影

python - 如何 'loosely' 检查字符串是否与列表中的另一个字符串匹配

python - 从字符串中提取温度度数(摄氏度或华氏度)

javascript - SVG 上的下拉菜单?

java - 将数字四舍五入到 n 位小数使用格式显示不同的结果