一个可能并没有什么卵用的、用 Python 正则查找文本的服务 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
whatacold
V2EX    分享创造

一个可能并没有什么卵用的、用 Python 正则查找文本的服务

  •  
  •   whatacold 2021-05-30 14:28:08 +08:00 1909 次点击
    这是一个创建于 1665 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务在 https://texttoolkit.com/re.findall ,接下来说说废话。

    场景 1

    我工作日常需要用各种内部管理系统,查看监控、日志、按机器 IP 过滤列表等等 ,经常需要人肉从界面 A 抠出来一堆 IP 列表到页面 B 操作,一两个 IP 都好说, 上了 5 个以上的时候就会把自己搞得很烦躁,感觉自己就是个机器。

    也尝试过一些批量的办法:

    1. 对于 table 型的数据,从浏览器复制粘贴到 excel 中,再把对应列提取出来
    2. 用 shell 包装一下 grep/sed/awk 来完成

    可行是可行,但抵挡不住内部系统各种 UI 不统一的问题,比如多 IP 分隔符,有的时候格式是 IP1|IP2 , 有的时候又是 IP1,IP2 ,使得上面的方法都不太灵活,每次用的时候都需要稍微定制一番, 每个工具的正则语法可能还会有一点点差异。

    于是我就想,是否有别的更好的方法呢?有天想到可以利用正则来很好的完成这个任务, 而且正则还有一个 bonus,那就是对于数据没有“格式”要求,不像 awk 那样针对特定的列, 只要满足 pattern 即可;另外对于 join 的符号,也可以在界面上很方便地更改。

    场景 2

    举一个开发例子,出于某种原因,你现在需要提取 protobuf 定义的所有字段名字,那也可以用这个服务来完成。 比如定义如下:

     message Person { required string Name = 1; required int32 Id = 2; optional string Email = 3; } 

    那么用正则也很简单,用 (\w+) = 即可把它们都抓出来。

    场景 3

    某天你上网看到一篇好文章,里面包含了大量精美的图片,你想把图片 url 都找出来,然后用 wget 下载下来, 在本地保存一份,这个服务也可以帮一点忙。

    1. 右键查看网页源码,粘贴到文本框中
    2. 写一个提取 img src 的正则: img.*?src="([^"]+)"
    3 条回复    2021-05-30 15:34:14 +08:00
    whatacold
        1
    whatacold  
    OP
       2021-05-30 14:42:28 +08:00
    v2ex 上传头像功能是挂掉了吗?想换下头像,试了几次都不行:(
    hxsf
        2
    hxsf  
       2021-05-30 14:53:09 +08:00
    场景 1 建议试试自己写个 油猴脚本,直接 js 取 dom 会更加方便,给页面直接加个按钮,点击之后直接复制到剪切板。
    whatacold
        3
    whatacold  
    OP
       2021-05-30 15:34:14 +08:00
    @hxsf 嗯嗯,确实也是一种方法,感谢建议。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     818 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 22:17 PVG 06:17 LAX 14:17 JFK 17:17
    Do have faith in what you're doing.
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11940834-2', 'v2ex.com'); ga('send', 'pageview'); ga('send', 'event', 'Node', 'topic', 'create'); ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86