我想获得具有此id模式的元素“answer- [0-9] *”
我在select "div[id~=answer-[0-9]*]"
匹配元素是:
<div class="post-text" id="answer-45881">
和
<div class="hidden modal modal-flag" id="answer-flag-modal45881">
我必须改变才能获得第一个?
答案 0 :(得分:3)
[attr~=regex]: elements with attribute values that match the regular expression;
e.g. img[src~=(?i)\.(png|jpe?g)]
看起来jsoup只是检查属性是否包含一些 part ,它可以与正则表达式匹配(如本例.png
或.jpg
),而不是整个值属性由正则表达式匹配。
要检查正则表达式是否匹配整个字符串,您需要放置anchors表示字符串^
的开头和字符串$
的结尾。
如果您想强制使用数字部分,也可以使用*
代替+
。
请尝试使用div[id~=^answer-[0-9]+$]
答案 1 :(得分:2)
*
运算符表示&#34;零或更多&#34;所以它仍将匹配第二个例子。您需要使用+
运算符代替&#34;一个或多个&#34;倍。所以,你的语法是:
div[id~=answer-[0-9]+]
答案 2 :(得分:1)
看起来它搜索id包含此模式,而不是匹配。
"div[id~=answer-[0-9]*$]"
应该适用。