我的表达结束是导致我出现问题的唯一部分,我试图匹配>
而不是/>
类似这样的内容:\s*[^\/]>
但是我不希望在>
以下是一个示例,我希望此匹配任何未关闭的img标记。
<img((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\s*[^\/]>
答案 0 :(得分:1)
最后摆脱[^\/]
,因为你只想匹配>
,而不是其他角色:
<img((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\s*>
答案 1 :(得分:1)
'(<img.*?(?<=[^/])>)'
仅对前面的字符进行正面后视检查。据我了解,您只需要检查>
前面是否\
。
正如bdukes所指出的那样,负面观察是另一种选择:(<img.*?(?<!/)>)