RTLIT ruby 工具用于在 css 文件中从 LTR 切换到 RTL,但它也不会改变 padding,margin left to right 例如:
https://github.com/zohararad/rtlit/blob/master/lib/rtlit/converter.rb
padding: 1px 2px;
padding: 0 2px 4px;
padding: 1px 0 3px 4px;
padding: 1px 2px 0 4px;
padding: 1px 2px 3px 0;
需要将此值更改为:
padding: 1px 2px;
padding: 0 0 4px 2px;
padding: 1px 4px 3px 0;
padding: 1px 4px 0 2px;
padding: 1px 0 3px 2px;
我们需要始终将第二个值与第四个值切换,如果它们只有 3,则将第二个值切换到第四个并将第二个值设置为 0
如果只有 2 个值,则保持原样。
我需要 ruby 或 php 中的正则表达式
最佳答案
在 php 中试试这个:
$result = preg_replace ('~\b(?:padding|margin)\b\h*:\h*\K(-?\d+[a-z%]*)\h+(-?\d+[a-z%]*)\h+(-?\d+[a-z%]*)\h+(-?\d+[a-z%]*)\h*(?=;)~i', '$1 $4 $3 $2', $string);
用 ruby :
my_result = my_str.sub( %r{(?i)\b(padding|margin)\b *: *(-?\d+[a-z%]*) +(-?\d+[a-z%]*) +(-?\d+[a-z%]*) +(-?\d+[a-z%]*) *(?=;)}, '$1: $2 $5 $4 $3')
关于php - RTLIT css padding rtl 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16823683/