0

我有一个将 px 转换为 em 的脚本:

perl -p -i -e 's/(\d+)px/($1\/16).em/ge' stylesheet.css

但是,当我调整它以将 em 转换为 px 时,它就不能正常工作:

perl -p -i -e 's/(\d+)em/($1*16).px/ge' stylesheet.css

它转换2.25em2.400px. 请帮助我。

4

2 回答 2

1

您不匹配小数部分:

  • 匹配整数部分(一位或多位数字`\d+)
  • 可选地匹配小数部分
    • 匹配点 ( \.)
    • 匹配小数部分(一个或多个数字\d+
$ echo '2.25em 2em' | perl -pe 's/(\d+(?:\.\d+)?)em/($1*16).px/ge'
36px 32px
于 2019-03-13T06:03:29.977 回答
0

您可以使用字符组代替 [ ]

perl -p -i -e 's/(\d[\d\.]*)px/($1\/16).em/ge'
perl -p -i -e 's/(\d[\d\.]*)em/($1*16).px/ge'
于 2019-03-13T06:11:59.017 回答