我试图缩小我的RegEx以忽略type="submit"
的表单元素。我只想选择直到部分class="*"
的元素部分,但仍然忽略如果type ="提交"在课前或课后。
到目前为止我的正则表达式:
(<(?:input|select|textarea){1}.*[^type="submit"]class=")(((?!form\-control)[a-zA-Z0-9_ -])*")
测试用例: 第一行应该匹配到类的结尾,而第二行应该被忽略。
<input type="text" name="name" id="test" class="example-class" max-length="7" required="required">
<input type="submit" class="btn-primary" value="send">
这可以吗?
答案 0 :(得分:0)
感谢您的评论。答案是前方的负面看法。
在正则表达式的开头添加(?!.*type="submit.*)
似乎已经给了我想要的结果。
工作正则表达式:
(?!.*type="submit.*)(<(?:input|select|textarea).*class=")(((?!form\-control)[a-zA-Z0-9_ -])*")
答案 1 :(得分:0)
(<(?:input|select|textarea)\s((?!type="submit")[\w\-]+\b="[^"]*"\s?)*>)
此表达式绑定到单个标记
最好避免像.*
这样的表达式,因为它可以更进一步,匹配一个字符串,该字符串将在一个标记内开始,最终在另一个标记内。