用rereplace或replace替换字体

时间:2017-10-12 03:14:41

标签: coldfusion

我需要一些关于replacerereplace

的帮助

我正在尝试将font-family:anything替换为font-family:swiss7

但是如果有值font-family: BebasNeue;我希望该字体不变,不添加字体大小,但将字体大小添加到其他字体

我正在关注本教程,但不知何故它与我需要实现的目标不匹配

  

https://www.sitekickr.com/snippets/coldfusion/strip-css-styles

2 个答案:

答案 0 :(得分:0)

更新:我觉得这个问题比较简单。如果您想查看我的原始答案,请查看此帖子的编辑历史记录。这个答案使用了一个类似的原则,虽然你搜索一个你不想删除的项目,然后用替换推回它。

<cfset teststr1 = "font-family: BebasNeue;" />
<cfset teststr2 = "font-family: Verdana" />
<cfset teststr3 = "font-family: BebasNeue; font-family: Times New Roman; color: red" />

<cfset search1 = "(font-family:\s*)((BebasNeue)|[\w ]+)(;)?" />
<cfset replace1 = "font-family: \3swiss7\4" />

<cfset search2 = "BebasNeueswiss7" />
<cfset replace2 = "BebasNeue" />

<cfoutput>
    <ol>
    <li>#replaceNoCase(reReplaceNoCase(teststr1, search1, replace1, "all"), search2, replace2, "all")#</li>
    <li>#replaceNoCase(reReplaceNoCase(teststr2, search1, replace1, "all"), search2, replace2, "all")#</li>
    <li>#replaceNoCase(reReplaceNoCase(teststr3, search1, replace1, "all"), search2, replace2, "all")#</li>
    </ol>
</cfoutput>

结果:

1. font-family: BebasNeue;
2. font-family: swiss7
3. font-family: BebasNeue; font-family: swiss7; color: red  

基本上你用所选的字体类型替换所有字体系列,在本例中为swiss7,但是通过在替换中包含组选择器,你可以将BebasNeue字体留在字符串中。然后,另一步将清除留下的组合字体名称。

答案 1 :(得分:-1)

我建议采用更易于维护的方法: @Dao public abstract class ProductDao { @Insert public abstract void insert(Product product); @Delete public abstract void delete(Product product); @Transaction public void insertAndDeleteInTransaction(Product newProduct, Product oldProduct) { // Anything inside this method runs in a single transaction. insert(newProduct); delete(oldProduct); } }

这应该让你想要的是:如果它是BebasNeue则不管它,否则,将font-family更改为swiss7并添加字体大小。但它也不是那么复杂,以至于一个正则表达式新手无法理解正在发生的事情。