V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wdssmq
V2EX  ›  PHP

这个错误的正则最早是哪儿流传出来的呢?

  •  
  •   wdssmq · 2021-07-10 18:20:10 +08:00 · 5659 次点击
    这是一个创建于 1228 天前的主题,其中的信息可能已经有所发展或是发生改变。

    $pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";

    ↑↑ 用来匹配内容中的图片,但是 [img|IMG] 匹配到的是 i 或 I 。。

    $pattern = '/<img[^>]*src="([^"]+)"[^>]*>/i';

    ↑↑ 如果数据中用了单引号,,那是数据的错误 →_→

    19 条回复    2021-07-12 16:40:07 +08:00
    zzzmj
        1
    zzzmj  
       2021-07-10 18:38:52 +08:00
    csdn ( doge)
    ReferenceE
        2
    ReferenceE  
       2021-07-10 18:49:13 +08:00 via Android
    C$DN 背锅
    Rache1
        3
    Rache1  
       2021-07-10 19:35:01 +08:00   ❤️ 1
    当你准备用正则来解决一个问题时,你现在就会有两个问题
    young1lin
        4
    young1lin  
       2021-07-10 19:37:26 +08:00
    盲猜 CSDN 。

    屏蔽 CSDN,编程能力提升一大截!!!
    sagaxu
        5
    sagaxu  
       2021-07-10 20:04:39 +08:00 via Android
    csdn 和 php 很配哦
    xiangyuecn
        6
    xiangyuecn  
       2021-07-10 20:17:48 +08:00
    <img src="aa.png">
    <img src = "aa.png">
    <img
    src = "aa.png">
    xiangyuecn
        7
    xiangyuecn  
       2021-07-10 20:19:17 +08:00
    <img src="&#47;aa.png">

    目测还有很多意想不到的变体
    luhe
        8
    luhe  
       2021-07-10 20:55:06 +08:00
    习惯了...
    iNaru
        9
    iNaru  
       2021-07-10 21:32:40 +08:00
    小括号吧
    iyaozhen
        10
    iyaozhen  
       2021-07-10 21:51:15 +08:00
    alsotang
        11
    alsotang  
       2021-07-10 23:45:09 +08:00
    能传出来,说明它起作用啊,这点更奇怪。
    wzzzx
        12
    wzzzx  
       2021-07-11 01:35:44 +08:00
    @alsotang #11 不不不,很多都是无脑复制黏贴,还有各自爬虫采集
    geelaw
        13
    geelaw  
       2021-07-11 04:01:51 +08:00 via iPhone
    @Rache1 #3 我记得一个笑话是说:当你准备用正则来解决一个问题时,你就会有就会有就会有就会有两个问题。
    baoshuo
        14
    baoshuo  
       2021-07-11 11:10:41 +08:00
    第一天:一个人写了错误的正则并发布到网上;
    第二天:爬虫爬到了这篇文章并发布;
    第三天:打开搜索引擎,搜索 xx 正则,前 10 页都是这个错误的正则。
    raaaaaar
        15
    raaaaaar  
       2021-07-11 11:14:18 +08:00 via Android
    然后还有 10 篇改正的
    wdssmq
        16
    wdssmq  
    OP
       2021-07-11 14:03:57 +08:00
    @ReferenceE #2
    @zzzmj #1

    然而实际看了几个 csdn 的内容。。正则部分不知道为什么被吃掉了。。
    no1xsyzy
        17
    no1xsyzy  
       2021-07-11 15:14:58 +08:00
    试试这个
    <img class="src=" roll=".png" src="https://v2ex.com/static/img/[email protected]" />
    (匹配结果是 `<Space>roll=".png` )
    <img src="https://v2ex.com/static/img/[email protected]" / >
    (匹配结果是空)

    通常不要用正则处理 XML/HTML 。
    no1xsyzy
        18
    no1xsyzy  
       2021-07-11 15:25:30 +08:00
    <img src="image.webp"> long long text describing "somefile.png" <b>IS NOT GOOD</b>
    同理其他后缀或者无后缀或者像 TWTR 那样 :orig

    而且 .*?[/]? 是冗余的吧。

    另外,HTML 似乎兼容单引号甚至无引号的属性值,应当是遗留问题。
    这种严以律己宽以待人的『兼容性设计』,实际上反而导致了很多兼容性问题。
    TheF00L
        19
    TheF00L  
       2021-07-12 16:40:07 +08:00
    @baoshuo 真相了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1222 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:25 · PVG 02:25 · LAX 10:25 · JFK 13:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.