【发布时间】:2020-03-24 07:31:47
【问题描述】:
我有 CSS 代码,我想交换 left 与 right 和 right 与 left。
这里是 CSS 示例:
.test{text-align:left;margin-left:10px;float:right}
.test_right{text-align:left;border-right:0px;border-left:1px}
.test_left{float:right}
应该是:
.test{text-align:right;margin-right:10px;float:left}
.test_right{text-align:right;border-left:0px;border-right:1px}
.test_left{float:left}
我有以下 preg_replace,但它只匹配每个 {} 中的 1 个实例,我需要它来匹配所有实例。
$css = preg_replace('/({.*?)left(.*?})/i', '$1right$2', $css);
另一个问题是我无法交换左右,因为在我运行第一个 preg_replace 后一切都会正确。我该如何解决这个问题?也许使用 preg_replace_callback?
【问题讨论】:
-
strtr($css, array('left' => 'right', 'right' => 'left')) -
这并不能解决我的问题,而且问题也不同。我厌倦了人们在不应该的情况下关闭这个网站上的问题。
-
道歉 - 我读了你的文字,上面写着“左右交换左右”,这就是代码的作用,但我没有仔细查看你的示例数据,看你是不交换所有的单词。再次抱歉,我重新提出了这个问题。
-
你需要
preg_replace_callback和strtr的组合:3v4l.org/PSsT7
标签: php regex preg-replace preg-replace-callback