正则表达式得到模式的最后一个字

时间:2014-12-27 14:49:49

标签: regex vb.net

我有这个字符串

<p>&nbsp;&nbsp;&nbsp;&nbsp;this is some text</p>

&nbsp;可以是任意次数

匹配我正在使用正则表达式(?<=<p.*?>*&nbsp;)(.*)(?=</p>)

但我得到&nbsp;&nbsp;&nbsp;this is some text作为输出

如何获取this is some text

修改

对不起我的字符串是<p class='randomstring'>a)&nbsp;&nbsp;&nbsp;&nbsp;this is some text</p> 代替a),有时会有数字。

2 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式:

(?<=<p[^>]*>)(?:&nbsp;)+(.*)(?=</p>)

抓住抓获的小组#1 进行匹配,即:

this is some text

编辑:根据您编辑的问题尝试此正则表达式:

(?<=<p[^>]*>)[^)]*\) *(?:&nbsp;)+(.*)(?=</p>)

答案 1 :(得分:2)

你可以使用下面的正则表达式,它使用可变长度的正向后看。

(?<=<p[^>]*>(?:&nbsp;)+)\b.*?(?=</p>)

这应该只匹配字符串this is some text

更新

(?<=<p[^>]*>\w*\)(?:&nbsp;)+)\b.*?(?=</p>)