您好我想根据给定的字符串值对文件路径和文件名进行分组。
e.g。 com/abc/chilkatsoft/CkEmail1$.class
filePath = com/abc/chilkatsoft
fileName = CkEmail1$.class
我尝试使用(.*?)?(\\/.+)
,但是第一次出现' /'。
任何伙伴都可以帮助我。
其实我想要解析日志文件数据我已经完成了80%。即
45013 Thu Aug 15 19:42:38 IST 2013 com/chilkatsoft/CkEmail.class
答案 0 :(得分:1)
由于您正在解析日志行,并且您需要匹配的数据几乎占据整行,因此可以使用贪婪的点匹配模式。
^(\d+)\s+(.*)\s+(.+)/(.+)
请参阅regex demo
在这里,
^
- 字符串/行开头(\d+)
- 第1组捕获1个或多个数字\s+
- 1+个空格(如果使用多行修饰符,则替换为常规空格)(.*)
- 第2组捕获整个行的其余部分直到最后的空白\s
- 空白字符(.+)
- 任意0个字符,直到最后/
/
- 斜线(.+)
- 其余部分。为了使模式更明确,请拼出内部模式:
^(\d+)\s+([a-zA-Z0-9\s]+\d{2}:\d{2}:\d{2}\s+[A-Za-z]+\s+\d{4})\s+(.+)/(.+)