使用正则表达式在<p> </p>标记内查找大写字母

时间:2011-12-12 23:20:47

标签: html regex visual-studio-2010

我想使用正则表达式来抓取<p></p> html标记中的大写字符。

<p>I WANT TO GET THIS TEXT</p>

<p>I don't want to get this text because it has some Lower Case Characters</p>

有时文档根本不包含此内容。有时它会有3-5次。文档包含<p></p>标记内的其他HTML,我不想更改。只有包含我想要返回的所有大写字符的段落标记。

我对正则表达式不太熟悉,所以这让我很难过。看起来我应该能够做到这样的事情:<p>[A-Z]</p>

找到大写文本后,我想通过ProperCase函数传递数据,并将数据重新插入<H3>标记。

2 个答案:

答案 0 :(得分:0)

我对visual-studio不熟悉。但你可以使用下面的正则表达式:

(?<=<p>)[A-Z ]*(?=</p>)

使用grep进行测试:

kent$  echo "<p>I WANT TO GET THIS TEXT</p>"|grep -Po '(?<=<p>)[A-Z ]*(?=</p>)'   

<强>输出

I WANT TO GET THIS TEXT

如果有一些小写字母:

kent$  echo "<p>BIGBIG BIG and some small letters</p>"|grep -Po '(?<=<p>)[A-Z ]*(?=</p>)'

(output nothing)

答案 1 :(得分:0)

试试这个:

(<p>)([^a-z]+)(</p>)

评估结果为:

  • true <p>I WANT TO GET THIS TEXT</p>
  • true <p>I DON'T WANT TO GET MIXED CASE TEXT 123.</p>
  • false <p>I don't want to get this text because it has some Lower Case Characters</p>