如何匹配不是body的所有标签,即<>内不包含"body"<body><div><img src=""/><a href=""></a></div><body><title>正则怎么写?

解决方案 »

  1.   

    你要那么匹配的话,换一换吧匹配尖括号内不包含"href"字符串的标签(红色部分)<body><div><img src=""/><a href=""></a></div><body><title>
      

  2.   


    <(?:(?!href)[^>])*>
      

  3.   

    //一个正则式恐怕不好实现。。如果真的有必要,不妨用<[^<>]*?href[^<>]*?>匹配出你不想匹配的项将其Replace掉
      

  4.   

    (?si)<(?:(?!\bhref\b)[^>])*>
      

  5.   

    两种方式吧,一种是空军写的,另一种<(?![^>]*\bhref\b)[^>]*>空军的写法我一般只在有嵌套时才用,典型应用场景
    <div>...<div>...</div>...</div>
    取最内层的<div>...</div>标签大致测了下,这两种写法的效率基本上差不多
      

  6.   


    个人感觉上第2种写法(lxcnn的方法)效率更高。
      

  7.   


    嗯,现在来说,只要规则明确,一般正则实现是难不倒我了,但是一涉及到原理和效率问题,就拿不准了这本书之前saucer也向我推荐过,只不过当时正忙,后来不搞程序了,也就搁下了,现在看来还是有必要看一下,要不然只是一味的去做实现已经没什么意义了
      

  8.   


    以后每天少泡CSDN半小时,用来学习哈~
      

  9.   

    我想用C#写一个基于WMI和.NET的局域网管理系统.能查看远程计算机的内存硬盘CPU等运行状况.现在还没有思路指导一下