我知道这已被问到至少一千次,但我找不到一个与此字符串中的名称匹配的正确正则表达式:
<td><div id="topbarUserName">Donald</div></td>
我想得到'唐纳德'的名字,最接近的正则表达式是&gt; [a-zA-Z0-9] +,但结果是&gt;唐纳德。
我在PureBasic中编码(它的语法类似于Basic),它使用PCRE库来表示正则表达式。
有人可以帮忙吗?
答案 0 :(得分:3)
(?<=>)(\w+?)(?=<)
之类的内容
无论哪种方式,众所周知正则表达式不适合解析HTML。
说明:
(?<=)
用于检查当前项目之前是否出现了某些内容。
\w+?
会匹配任何&#34;字&#34; -character,一次或多次,但只要模式的其余部分匹配某些内容就停止,对于这种情况,?
可能被遗漏了。
(?=)
用于检查当前项目后是否显示某些内容。
答案 1 :(得分:1)
试试这个
它应该捕获任何字母/数字
>([\w]+)<
此外,我不确定您的项目限制是什么,但这样做会更容易
$('#topbarUserName').text();
在jQuery中而不是使用正则表达式。
答案 2 :(得分:1)
>([a-zA-Z]+)
应该做伎俩。记得让分组正确。
答案 3 :(得分:0)
为什么不用普通的旧基本字符串函数来做呢?
a.w = FindString(HTMLstring.s, "topbarUserName") + 16 ; 2 for "> and topbar...
If a > 0
b.w = FindString(HTMLstring, "<", a)
If b > 0
c.w = b - a
Donald.s = Mid(HTMLstring,a, c)
EndIf
EndIf
Debug Donald