php - RTLIT css padding rtl 正则表达式

标签 php css ruby regex right-to-left

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/

相关文章:

php 是可变的数组或对象

php - 使用 $this->db->select(); 时如何在 codeigniter 中禁用反引号;

php - 从 .frm 文件中检索 MySQL 表模式以创建 SQL 脚本

ruby - ruby 混淆中的正则表达式匹配

Ruby 使用 Rspec stub Dir.glob

ruby-on-rails - Heroku 间歇性 H15 'Idle connection' 上传操作错误

javascript - 调用 PHP 变量到 html 输入

css - CSS 中带有透明文本的 Div?

jquery - 带有向下滑动面板的固定标题栏

html - 如何忽略 wordpress 主题中的 <p> CSS 规则?