正则表达式。*表达式只提取我要提取的部分字符?

时间:2013-07-19 12:29:28

标签: ruby regex html-parsing

我有这个字符串:

rder=3D"0" width=3D"650">=0D=0A <tr>=0D=0A <td valign=3D"top">=0D=0A <p>=0D=0A <strong>Hi Mike Tyson</strong>,<br/>=0D=0A =

我想从字符串中提取Mike Tyson。除了名称之外的所有内容在上面的字符串中都是一样的,所以我的第一个线索就是使用这个正则表达式:

[^rder=3D"0" width=3D"650">=0D=0A <tr>=0D=0A <td valign=3D"top">=0D=0A <p>=0D=0A <strong>Hi ].*[^<\/strong>,<br\/>=0D=0A =]

但是,这会输出Mike Ty而不是Mike Tyson。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

方括号使整个匹配成为一个字符类

此表达式将与Mike Tyson匹配

(?<=rder=3D"0" width=3D"650">=0D=0A <tr>=0D=0A <td valign=3D"top">=0D=0A <p>=0D=0A <strong>Hi ).*?(?=<\/strong>,<br\/>=0D=0A =)

直播示例:http://www.rubular.com/r/OaK2ZmbSPh