我有非常大的HTML文档,包含大量的paragraps。对于标题,在段落中使用UPPER CASE文本。
如何查找包含大写案例文本的所有段落并将样式应用于这些段落?
在大多数段落中,文本之间还有足够的间距。现有标题的样本:
<p> </p>
<p> USU EA EUISMOD HONESTATIS DETERRUISSET.</p>
<p>Qualisque mnesarchum no nam, usu cu fastidii delicata. Eu mei nonumy libris, quas movet vivendo vim at. Prima epicuri conceptam pro ad, in suas nonumes similique duo. Qui mundi essent complectitur eu. Ei laudem veritus democritum vis, te ferri appareat eos. Ceteros pertinacia ea eum, quo integre theophrastus ex, eum et sint omnes detracto. Ea vim brute labore. Vim te esse libris erroribus, ex minimum tacimates dissentiet duo. Ignota iisque in mei, pri sanctus albucius omnesque id. Laoreet docendi theophrastus ei pri, duo wisi tollit decore ea, tempor doctus vivendo sed ad. </p>
<p>Usu ea euismod honestatis deterruisset. Ne quo malis meliore, duo viris liberavisse no, mea an vide mutat quodsi. Vis an vidit debitis, et noster aliquam pri, case iudicabit te sea. Cum sadipscing consectetuer cu, an nominavi consulatu adversarium sea, nam ad dico evertitur voluptaria. Id justo viderer bonorum per, in ius impedit tincidunt, nec et quis scaevola. Cu congue iriure scaevola usu. Ei elit reformidans suscipiantur eos, cum ut doming iracundia. </p>
<p> </p>
<p> CU CONGUE IRIURE SCAEVOLA --
UT DOMING IRACUNDIA. </p>
<p> DICO TEMPOR HABEMUS.</p>
<p>Homero everti ei nam. An liber euripidis vis, pericula persecuti deseruisse ad mea. Dicant offendit sea et, per esse timeam deserunt ut. In pri enim sadipscing, ei movet soleat suavitate vim. Mea et omnesque phaedrum, paulo luptatum concludaturque vim ea. -- LIBER. </p>
我希望将样式应用于段落标记内的大写字母(标题)以使其变为粗体(标题)。
在运行正则表达式replace(s)或UltraEdit宏之后,上面的块应该如下所示:
<p> </p>
<p class="bold"> USU EA EUISMOD HONESTATIS DETERRUISSET.</p>
<p>Qualisque mnesarchum no nam, usu cu fastidii delicata. Eu mei nonumy libris, quas movet vivendo vim at. Prima epicuri conceptam pro ad, in suas nonumes similique duo. Qui mundi essent complectitur eu. Ei laudem veritus democritum vis, te ferri appareat eos. Ceteros pertinacia ea eum, quo integre theophrastus ex, eum et sint omnes detracto. Ea vim brute labore. Vim te esse libris erroribus, ex minimum tacimates dissentiet duo. Ignota iisque in mei, pri sanctus albucius omnesque id. Laoreet docendi theophrastus ei pri, duo wisi tollit decore ea, tempor doctus vivendo sed ad. </p>
<p>Usu ea euismod honestatis deterruisset. Ne quo malis meliore, duo viris liberavisse no, mea an vide mutat quodsi. Vis an vidit debitis, et noster aliquam pri, case iudicabit te sea. Cum sadipscing consectetuer cu, an nominavi consulatu adversarium sea, nam ad dico evertitur voluptaria. Id justo viderer bonorum per, in ius impedit tincidunt, nec et quis scaevola. Cu congue iriure scaevola usu. Ei elit reformidans suscipiantur eos, cum ut doming iracundia. </p>
<p> </p>
<p class="bold"> CU CONGUE IRIURE SCAEVOLA --
UT DOMING IRACUNDIA. </p>
<p class="bold"> DICO TEMPOR HABEMUS.</p>
<p>Homero everti ei nam. An liber euripidis vis, pericula persecuti deseruisse ad mea. Dicant offendit sea et, per esse timeam deserunt ut. In pri enim sadipscing, ei movet soleat suavitate vim. Mea et omnesque phaedrum, paulo luptatum concludaturque vim ea. -- LIBER. </p>
由于某些段落包含混合大写和小写文本,因此我们需要限制正则表达式仅搜索包含所有大写字母文本的段落,而不使用小写字母。段落中也可以有换行符。
如何使用UltraEdit for Linux中的一些宏或代码完成此操作? (或者正如正则表达式的Windows版本一样。)
我希望将类应用于段落(而不是制作标题H1,H2等)仅仅因为电子书阅读器(Kindle等)可能以不可预测的方式显示标题。 文档编码是utf-8,Cyrillic charset。
答案 0 :(得分:0)
您可以使用以下风格
1.uppercase .fieldset
.row
.col-sm-12
= f.label :pin_code,"Pin Code", class: "col-sm-3 control-label text-right"
= f.text_field :pin_code, autofocus: true, class: "col-sm-3"
%div{id: 'state_field'}
= f.label :state,"State", class: "col-sm-3 control-label text-right"
= f.select(:state, options_for_select(State.collect_state),{},{class: "selectpicker col-sm-3", id: "myselect", prompt: "Select State", "data-live-search": "true"})
%div.hide{id: 'country_field'}
= f.label :country,"Country", class: "col-sm-3 control-label text-right"
= f.select(:country, Country.collect_country,{}, {class: "selectpicker add_class_country dropdown_country col-sm-3", title: "select country", "data-live-search": "true"})
%br
2.lowercase text-transform: uppercase;
3.capitalize text-transform: lowercase;
<强>输出强>
这是一些文字。
这是一些文字。
这是一些文字。
答案 1 :(得分:0)
我想到的最简单的第一个解决方案是:
您可以添加css-class,将任何内部文本转换为UPPERCASE文本
.uppercase {
text-transform: uppercase;
}
到你需要大写字母的<p>
。
然后你可以做任何其他操作,如p.uppercase {color:red;}
在您的情况下,它将是p.uppercase.bold {...}
另一种方法是在this answer中添加自定义js函数来检查<p>
内的文本是否为大写。
如果它是大写的,请添加您的自定义类。
$(function(){
var arrP = $('p'); //get all p-elements
if(arrP.length > 0){ //check if there are some p-elements
for(var i=0; i<arrP.length; i++){
if(isUpperCase(arrP[i].text())){ // if p-text in in UPPERCASE
arrP[i].addClass('.bold'); // add class bold
}
}
}
要使用Regex,请检查此回答Find uppercase letters within <p></p> tags using regex
答案 2 :(得分:0)
使用 vim 编辑器,您可以使用以下命令执行此操作:
:g/<p>[A-Z ]\{-}<\/p>/ s/\s\{2,}/ /g | s/<p>/<p class="bold">/g
注意如果您的<p>
标记跨越多行,则它不起作用,例如:
<p>
UPPER CASE TEXT
</p>