我要匹配 asp:DropDownList 不包含类 selectpicker
的所有行这是我到目前为止所拥有的:
^((\b<asp:DropDownList\b)*(?!selectpicker).)*$
我的测试字符串是:
<asp:DropDownList class="form selectpicker">
<asp:DropDownList class="selectpicker">
<asp:DropDownList class="form">
<asp:TextBox class="selectpicker">
<asp:TextBox class="form">
我只希望列表中的第三项,因为那是唯一不包含该类的DropDownList标记。
答案 0 :(得分:1)
您可以使用
^<asp:DropDownList(?!.*class="[^"]*selectpicker[^"]*").*>$
它使用否定前瞻来确保class
之后的带引号的字符串不包含selectpicker
。 (也就是说,在大多数情况下,最好使用实际的XML解析器)
答案 1 :(得分:1)
以下是使用tempered greedy token的解决方案:
<asp:DropDownList (?:(?!class="[^"]*selectpicker[^"]*").)*>
它匹配任何不包含模式class="[^"]*selectpicker[^"]*"
的内容。