- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找 php 中 preg_replace 的正则表达式,它用缩小的类名替换 html 文件中的类名。我在 css-minifying 过程中执行此操作。我得到了一个关联数组,其中类名作为键,替换项作为值。即:
$myReplacements = array('fonts' => 'f',
'标签' => 'l',
'小' => 't')
这些替换应该只在完全匹配的情况下进行,而不是在像“fonts-small-size”这样的类上进行。我的正则表达式是:
/"((.*[^"]?)?(\} | |\}))?fonts(( \{| |\{)(.*[^"])?)?"/
用替换正则表达式:
"$2$3f$5$6"
--
我得到了第二个带有替换的关联数组,对于仅以它开头的类也应该这样做:
$forcedReplacements = array('ui-icon-' => 'ui-')
这种替换应该在像“ui-icon-thumbs-up”这样的类上完成,并且应该替换为“ui-thumbs-up”。我的正则表达式是:
/"(.*)ui-icon-(.*)"/
用替换正则表达式:
"$1ui-$2"
我要替换此类名称的 HTML 文件具有以下内容:
{if !$isSmallFontCheckDisabled}
<span class="{if $smallFontFromCharacters}fonts tiny{/if}{if $hasStandardLabel} fonts label{/if}">
{/if}
这是我的一个模板文件的一个小片段。如您所见,我使用 smarty 作为模板引擎。因此,在我的正则表达式中也必须考虑聪明的语法。
在大多数情况下,替代品工作得很好。如果我的模板文件的类属性包含相同的类两次,我就会遇到问题(如果我有 if/else-smarty-block 可能会发生这种情况)。然后两者中只有一个被替换。
上面的模板片段被替换为:
{if !$isSmallFontCheckDisabled}
<span class="{if $smallFontFromCharacters}fonts t{/if}{if $hasStandardLabel} f l{/if}">
{/if}
谁能帮我用我的正则表达式来替换所有出现的模板?
最佳答案
你不想使用 preg_replace,你想使用 preg_replace_callback()。将类属性从标签中拉出,按空格拆分,处理结果数组的每个元素,然后将其粘贴回一起。像这样的……
$line = preg_replace_callback(
'/(<[^<] class=\")([^"]*)(\")/',
function ($matches) {
$classes = explode(' ', $matches[2])
/*
Do your class name replacements here
*/
return $matches[1].(implode(' ', $classes)).$matches[3];
},
$line
);
关于php - 用于替换 html 代码中的 css 类的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24547747/
我有一个加号/减号按钮,希望用户不能选择超过 20 个但不知道如何让它工作。我尝试使用 min="1"max="5 属性,但它们不起作用。这是我的代码和一个 fiddle 链接。https://jsf
我正在尝试复制顶部底部图,如示例 here但它没有正确渲染(紫色系列有 +ve 和 -ve 值,绿色为负值)留下杂乱的人工制品。我也在努力创建一个玩具示例来复制这个问题,所以我希望尽管我缺乏数据,但有
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 6 年前。 社区去年审查了是
这个问题在这里已经有了答案: Adding two positive integers gives negative answer.Why? (4 个答案) 关闭 5 年前。 我遇到了一个奇怪的问题
有谁知道如何将字符串值类型 -4,5 或 5,4 转换为 double -4.5 或 5.4? 最佳答案 只需使用 Double.parseDouble(Locale, String); 糟糕,我很困
我正在尝试根据 TextBlob 分类插入一个仅包含“正”或“负”字符串的新数据框列:对于我的 df 的第一行,结果是 ( pos , 0.75, 0.2499999999999997)我想要' 正
我对 VBA 非常陌生,无法理解如何在一个循环中完成 2 个任务。我非常感谢您的帮助。 我已经能够根据第 3 列中的数据更改第 2 列中的数值,但我不明白如何将负值的字体更改为红色。 表格的大小每月都
欢迎, 我正在使用 jquery 通过 POST 发送表单。 这就是我获得值(value)的方式。 var mytext = $("#textareaid").val(); var dataStrin
double d = 0; // random decimal value with it's integral part within the range of Int32 and always p
我有这个字符串: var a='abc123#xyz123'; 我想构建 2 个正则表达式替换函数: 1) 用 '*' 替换所有确实有 future '#'的字符(不包括'#') 所以结果应该是这样的
我正在使用 DialogFragment。当用户从 Gmail 平板电脑应用程序的屏幕与下面示例图片中的编辑文本进行交互时,我希望正面和负面按钮保持在键盘上方。 在我的尝试中不起作用,这是我的 Dia
从组装艺术一书中,我复制了这句话: In the two’s complement system, the H.O. bit of a number is a sign bit. If the H.O
是否有更好更优雅的方法来实现下面的简单代码(diffYear、A 和 B 是数字): diffYear = yearA - yearB; if (diffYear == 0) { A = B
我正在设计一种语言,并尝试确定 true 应该是 0x01 还是 0xFF。显然,所有非零值都将转换为 true,但我正在尝试确定确切的内部表示。 每种选择的优点和缺点是什么? 最佳答案 没关系,只要
在我的 dialogfragment 类的 OnCreateDialog 中,我正在这样做: AlertDialog.Builder builder = new AlertDialog.Builder
这个问题在这里已经有了答案: Resolving ambiguous overload on function pointer and std::function for a lambda usin
我偶然发现了一个奇怪的 NSDecimalNumber 行为:对于某些值,调用 integerValue、longValue、longLongValue 等,返回意想不到的值(value)。示例: l
这个问题在这里已经有了答案: Resolving ambiguous overload on function pointer and std::function for a lambda using
我有这个正则表达式来测试用户输入是否有效: value.length === 0 || value === '-' || (!isNaN(parseFloat(value)) && /^-?\d+\.
我想用高斯混合模型拟合数据集,数据集包含大约 120k 个样本,每个样本有大约 130 个维度。当我使用 matlab 执行此操作时,我运行脚本(簇号为 1000): gm = fitgmdist(d
我是一名优秀的程序员,十分优秀!