
类似这样的字符串,格式固定是
任意数量的英文字母 + . + 任意数量的英文字母 + . + 任意数量的英文字母 + . + 任意数量的英文字母
比如这样 dkfj.wer.dkfjj.sldkf
我只想要最后 sldkf 这个字符串,如何用正则匹配过滤掉前面的 dkfj.wer.dkfjj.
     1   czyt      2022-07-22 23:49:24 +08:00  试试 (?<=\w+\.)\w+$   |  
     2   wxf666      2022-07-22 23:53:57 +08:00  $ sed 's/^.*\.//' <<<'dkfj.wer.dkfjj.sldkf'  输出: sldkf  |  
     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 ```  |  
     4   wxf666      2022-07-22 23:57:13 +08:00  仅捕获想要的字符串:  [^.]*$  |  
     5   haodingzan      2022-07-23 00:01:22 +08:00  看起来是要做数据清洗,提取需要的值。  找个支持正则的编辑器,比如 VS Code 查找:^.*\. --> 从整句开头开始查找所有内容,结尾为一个“.” 替换:空 剩下的就是你要的了  |  
     6   MajestySolor   OP  |  
     7   masker      2022-07-23 00:19:02 +08:00 via Android  正向断言   |  
     8   hitaoguo      2022-07-23 08:32:44 +08:00  这个需求不一定非要正则啊,split 拿最后   |  
     9   512357301      2022-07-23 09:41:14 +08:00 via Android    |  
     10   zhuweiyou      2022-07-24 08:55:48 +08:00  这不需要正则, split('.').pop() 就完事了   |