• 请不要在回答技术问题时复制粘贴 AI 生成的内容
p1956
V2EX  ›  程序员

正则问题,来看看吧

  •  
  •   p1956 · Aug 7, 2023 · 3550 views
    This topic created in 1188 days ago, the information mentioned may be changed or developed.
    <tr><td>532775<td><i>NULL</i><td><i>NULL</i><td><i>NULL</i><td> 林萍 <td> <td> <td> h0017byu1hc <td> 1049 <td> <td>62588<td> 001 <td><i>NULL</i><td>00532775 <td><i>NULL</i><tr><td>532858<td><i>NULL</i><td><i>NULL</i><td><i>NULL</i><td> 林欣彤 <td> <td> <td> i00178fmn0l <td> 1049 <td> <td>25685<td> 003F2pV <td><i>NULL</i><td>TX0 <td><i>NULL</i></table>

    正则提取 td 里面的内容(含空值),要通过 https://tool.oschina.net/regex/ 测试。<td>(.+?)<只有 18 个结果,怎么提取出正确的 30 个结果
    21 replies  •  2023-08-07 22:32:49 +08:00
    retanoj
    retanoj
    Aug 7, 2023
    1
    html 不建议用正则扣
    73P2OdTjK6t29nk1
    73P2OdTjK6t29nk1
    Aug 7, 2023
    2
    这种事交给 chatgpt 不是第一选择吗
    zpj520wzm
    zpj520wzm
    Aug 7, 2023
    3
    td>(.+?)<
    8355
    8355
    Aug 7, 2023
    4
    正则是效率最低的方式,标准 html 解析是最好的方案
    Great233
    Great233
    Aug 7, 2023
    5
    td>.*?<
    这样?
    p1956
    p1956
    OP
    Aug 7, 2023
    6
    @okaykai chatgpt 解决不了
    chnwillliu
    chnwillliu
    Aug 7, 2023 via Android
    7
    <td>(.+?)(?=<)

    用断言,否则后面的尖括号会被吃了
    dayeye2006199
    dayeye2006199
    Aug 7, 2023 via Android
    8
    建议做个树结构,然后框个迭代的条件过一遍就行
    cloudfox
    cloudfox
    Aug 7, 2023
    9
    (?<=<td>)(.*?)(?=<td>)
    shiyuu
    shiyuu
    Aug 7, 2023
    10
    chatgpt 帮你完成
    newaccount
    newaccount
    Aug 7, 2023
    11
    <td>([^<]*)<
    p1956
    p1956
    OP
    Aug 7, 2023
    12
    @chnwillliu 这个可以,谢谢
    newaccount
    newaccount
    Aug 7, 2023
    13
    @newaccount 忽略我,原始数据不是标准 td 嵌套
    SuujonH
    SuujonH
    Aug 7, 2023
    14
    善用 chatgpt ,不行就多问问

    <td>([^<]*)
    Seanfuck
    Seanfuck
    Aug 7, 2023
    15
    3 楼 5 楼的都可以,奇怪了不能用<td>开头的
    davin
    davin
    Aug 7, 2023
    16
    你这也不是标准的 HTML 吧,不遵循嵌套规则,结束标签呢?
    zpj520wzm
    zpj520wzm
    Aug 7, 2023
    17
    @Seanfuck 楼主一开始的正则,后面会吞掉一个<,就匹配不了<td>开头了,间隔,所以只能匹配一半,就是 15 个。做法要么这样写,要么就是 chnwillliu 说的后向断言引用
    herozzm
    herozzm
    Aug 7, 2023
    18
    测试正则请用: https://regex101.com/
    loveDiu4ever
    loveDiu4ever
    Aug 7, 2023
    19
    td 里面套 td 真有人愿意给他写正则啊
    kaedeair
    kaedeair
    Aug 7, 2023
    20
    td>(.+?)<
    为啥会漏最后一个是因为最后一个"<"把最后<td>的"<"吃了
    mikewang
    mikewang
    Aug 7, 2023
    21
    不要使用正则表达式匹配 HTML: https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags

    HTML 不是正则文法语言,因此该语言不能被正则表达式“正确地”解析。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1473 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 15:44 · PVG 23:44 · LAX 07:44 · JFK 10:44
    ♥ Do have faith in what you're doing.