正则表达帮助

时间:2011-05-13 22:12:52

标签: regex

文本:

<span id="p_code_">WHATIWANT</span>

代码:

objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern = "\<(span\s+id=""(p_code_.*)[^\>]+)</span>"

尝试提取字符串WHATIWANT

2 个答案:

答案 0 :(得分:2)

不要用正则表达式解析(x)html!这就是DOM的用途。

http://www.uv.tietgen.dk/staff/mlha/pc/web/script/vbscript/object/index.htm

答案 1 :(得分:2)

我认为您正在寻找的是以下内容:

objRegExp.Pattern = "\<span id=\"p_code_\"\>(.*?)\<\/span\>"

使用某些东西测试你的正则表达式/字符串有时很有帮助。我主要是为此目的使用TextMate's查找功能,但这里有一个很棒的网络资源:http://rubular.com/

编辑:根据以下评论,您似乎需要更多类似的内容:

objRegExp.Pattern = "\<span id=\"p_code_d\d{3,}a\d{3,}\"\>(.*?)\<\/span\>"

捕获span的id的“d567a356”部分。这假设id将始终以以下形式结束:d(后跟三个或更多数字)a(后跟三个或更多数字)。

编辑2:

实际上,这更为通用:

objRegExp.Pattern = "\<span id=\"p_code_.+?\b\"\>(.*?)\<\/span\>"

这将符合以下两项:

<span id="p_code_d567a356" class="blaf">WHATIWANT</span>

<span id="p_code_d567a3dsfasfdsaf56">WHATIWANT</span>