正则表达式检查关闭标记XHTML

时间:2009-09-25 12:48:47

标签: regex xhtml

我的表达结束是导致我出现问题的唯一部分,我试图匹配>而不是/>

类似这样的内容:\s*[^\/]>但是我不希望在>

之前匹配任何其他字符

以下是一个示例,我希望此匹配任何未关闭的img标记。

<img((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\s*[^\/]>

2 个答案:

答案 0 :(得分:1)

最后摆脱[^\/],因为你只想匹配>,而不是其他角色:

<img((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[^'">\s]+))?)+\s*|\s*)\s*>

答案 1 :(得分:1)

'(<img.*?(?<=[^/])>)'

仅对前面的字符进行正面后视检查。据我了解,您只需要检查>前面是否\

正如bdukes所指出的那样,负面观察是另一种选择:(<img.*?(?<!/)>)