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

问个正则匹配的低端问题

  •  
  •   MajestySolor · 2022-07-22 23:43:56 +08:00 · 1284 次点击
    这是一个创建于 614 天前的主题,其中的信息可能已经有所发展或是发生改变。

    类似这样的字符串,格式固定是

    任意数量的英文字母 + . + 任意数量的英文字母 + . + 任意数量的英文字母 + . + 任意数量的英文字母

    比如这样 dkfj.wer.dkfjj.sldkf

    我只想要最后 sldkf 这个字符串,如何用正则匹配过滤掉前面的 dkfj.wer.dkfjj.

    10 条回复    2022-07-24 08:55:48 +08:00
    czyt
        1
    czyt  
       2022-07-22 23:49:24 +08:00
    试试 (?<=\w+\.)\w+$
    wxf666
        2
    wxf666  
       2022-07-22 23:53:57 +08:00
    $ sed 's/^.*\.//' <<<'dkfj.wer.dkfjj.sldkf'

    输出:
    sldkf
    Hardrain
        3
    Hardrain  
       2022-07-22 23:54:38 +08:00
    `[a-zA-Z]+\.[a-zA-Z]+\.[a-zA-Z]+\.([a-zA-Z]+)`

    取$1

    如果仅小写, 替换`a-zA-Z`为`a-z`

    ```
    $ cat /tmp/sample.txt
    dkfj.wer.dkfjj.sldkf

    $ sed -Ee 's/[a-zA-Z]+\.[a-zA-Z]+\.[a-zA-Z]+\.([a-zA-Z]+)/\1/' /tmp/sample.txt
    sldkf
    ```
    wxf666
        4
    wxf666  
       2022-07-22 23:57:13 +08:00
    仅捕获想要的字符串:

    [^.]*$
    haodingzan
        5
    haodingzan  
       2022-07-23 00:01:22 +08:00
    看起来是要做数据清洗,提取需要的值。

    找个支持正则的编辑器,比如 VS Code
    查找:^.*\. --> 从整句开头开始查找所有内容,结尾为一个“.”
    替换:空

    剩下的就是你要的了
    MajestySolor
        6
    MajestySolor  
    OP
       2022-07-23 00:17:45 +08:00
    @czyt #1
    @wxf666 #2
    @Hardrain #3
    @wxf666 #4
    @haodingzan #5
    已解决,非常感谢各位 👍
    masker
        7
    masker  
       2022-07-23 00:19:02 +08:00 via Android
    正向断言
    hitaoguo
        8
    hitaoguo  
       2022-07-23 08:32:44 +08:00
    这个需求不一定非要正则啊,split 拿最后
    512357301
        9
    512357301  
       2022-07-23 09:41:14 +08:00 via Android
    https://regex101.com/
    ↑↑↑试试这个网站,我一般用它写正则,
    原来用的是站长工具里面正则测试
    https://tool.chinaz.com/regex/
    zhuweiyou
        10
    zhuweiyou  
       2022-07-24 08:55:48 +08:00
    这不需要正则, split('.').pop() 就完事了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3051 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:46 · PVG 20:46 · LAX 05:46 · JFK 08:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.