V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
wdssmq
V2EX  ›  PHP

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

  •  
  •   wdssmq · Jul 10, 2021 · 6499 views
    This topic created in 1754 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    屏蔽 CSDN,编程能力提升一大截!!!
    sagaxu
        5
    sagaxu  
       Jul 10, 2021 via Android
    csdn 和 php 很配哦
    xiangyuecn
        6
    xiangyuecn  
       Jul 10, 2021
    <img src="aa.png">
    <img src = "aa.png">
    <img
    src = "aa.png">
    xiangyuecn
        7
    xiangyuecn  
       Jul 10, 2021
    <img src="&#47;aa.png">

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

    然而实际看了几个 csdn 的内容。。正则部分不知道为什么被吃掉了。。
    no1xsyzy
        17
    no1xsyzy  
       Jul 11, 2021
    试试这个
    <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  
       Jul 11, 2021
    <img src="image.webp"> long long text describing "somefile.png" <b>IS NOT GOOD</b>
    同理其他后缀或者无后缀或者像 TWTR 那样 :orig

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

    另外,HTML 似乎兼容单引号甚至无引号的属性值,应当是遗留问题。
    这种严以律己宽以待人的『兼容性设计』,实际上反而导致了很多兼容性问题。
    TheF00L
        19
    TheF00L  
       Jul 12, 2021
    @baoshuo 真相了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5374 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 07:25 · PVG 15:25 · LAX 00:25 · JFK 03:25
    ♥ Do have faith in what you're doing.