我解析了一些日志,在某些情况下,用户名显示为FirstName.LastName,在其他情况下显示为FLastName。我只是想知道是否有可能将名称解析为FLastName。 例如Joe.Doe和JDoe应该都是JDoe。 谢谢。
答案 0 :(得分:1)
这样做:
(.)(?:[^\.]*\.)(.+)$
基本上它抓住第一个字符,然后允许多个字符后跟一个点,然后抓住其余的字符。替换字符串将是:
$1$2
但这取决于您正在使用的正则表达式工具。
Try it on RegExr(感谢stema,我不知道这个网站。)
答案 1 :(得分:0)
不确定您使用的是什么正则表达式平台,但这可以在sed中使用:
sed 's/\([a-z[A-Z]\).*\.\(.*\)$/\1\2/'
对于字符串"FirstName.LastName
和FLastName
,它会提供输出:
FLastName
答案 2 :(得分:0)
我的解决方案,(但其他两个也会起作用)
^([a-zA-Z])(?:.*\.)?(.*)$
它匹配第一个字母,然后是下一个部分,直到点是可选的。最后匹配字符串直到结束。第一个字母在第1组,LastName在第2组。
所以用$ 1 $ 2替换(或者\ 1 \ 2,取决于你的正则表达式引擎)