【问题标题】:CSS & Regex, switching values of padding or margin propertyCSS & Regex,切换填充或边距属性的值
【发布时间】:2012-10-22 21:22:00
【问题描述】:

我有 CSS 代码,我想在其中找到填充 - 或 - 边距属性 (其中有 4 个值)并用右值切换左值:
例如padding: 1px 2px 3px 4px;
- 变成这样 -
padding: 1px 4px 3px 2px;
如何使用正则表达式和 PHP 实现这一目标? :-)

【问题讨论】:

  • 您希望这发生在您的 PHP 代码中还是在您的 Javascript 中?我看不出你必须在 php 代码中做出这样的改变..
  • @Svetlio 我想让 PHP 代码在 CSS 文件中搜索并进行切换和替换,然后用更改重写 CSS。

标签: php css regex margin padding


【解决方案1】:

试试这个:

preg_replace(
    '/padding:\s*?(\d*px)\s*(\d*px)\s*(\d*px)\s*(\d*px)\s*?;/i',
    'padding: $1 $4 $3 $2;',
    $css
);

说明

\s 匹配空格

\d 匹配一个数字

\d*px 将匹配任何后跟“px”的数字

【讨论】:

  • 属性之间可能有多个空格。投反对票?
  • 该规则后面可能没有分号
  • 这匹配像padding:1px2px3px4px;这样的无效内容
  • @Eric 没错,做了调整
  • 我将其更改为 '/padding:\s*?(\d*p?x?)\s*(\d*p?x?)\s*(\d*p?x?)\s*(\d*p?x?)\s*?/i' 以使其匹配边距:0 5px 0 10px
猜你喜欢
  • 2010-12-20
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
  • 2014-12-20
  • 2012-04-09
  • 2012-01-27
  • 2014-03-24
  • 2013-05-15
相关资源
最近更新 更多