问个正则匹配的低端问题

讨论 未结 7 54
MajestySolor
MajestySolor 会员 2022年7月22日 15:56 发表
<p>类似这样的字符串,格式固定是</p> <p><strong>任意数量的英文字母 + . + 任意数量的英文字母 + . + 任意数量的英文字母 + . + 任意数量的英文字母</strong></p> <p>比如这样 <code>dkfj.wer.dkfjj.sldkf</code></p> <p>我只想要最后 <code>sldkf</code> 这个字符串,如何用正则匹配过滤掉前面的 <code>dkfj.wer.dkfjj.</code></p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
7个回复
  • wxf666
    2022年7月22日 15:56
    $ sed 's/^.*\.//' <<<'dkfj.wer.dkfjj.sldkf' 输出: sldkf
    0 0
  • Hardrain
    2022年7月22日 16:28
    `[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 ```
    0 0
  • wxf666
    2022年7月22日 16:28
    仅捕获想要的字符串: [^.]*$
    0 0
  • haodingzan
    2022年7月22日 16:28
    看起来是要做数据清洗,提取需要的值。 找个支持正则的编辑器,比如 VS Code 查找:^.*\. --> 从整句开头开始查找所有内容,结尾为一个“.” 替换:空 剩下的就是你要的了
    0 0
  • MajestySolor
    2022年7月22日 16:28
    #1 @ #2 @ #3 @ #4 @ #5 已解决,非常感谢各位 👍
    0 0