如果找到字符,则在字符后忽略字符串

时间:2014-06-06 11:47:18

标签: java regex

我需要正则表达式找到孩子和父母。例如:

  

- > 2014-05-21 22:05:23.092 INFO [Core] org.jboss.modules.ModuleClassLoader@692578be parent:sun.misc.Launcher$AppClassLoader@62c8aeb3,sun.misc.Launcher $ ExtClassLoader @ 65459c6f

孩子为org.jboss.modules.ModuleClassLoader@692578be,其父级为sun.misc.Launcher$AppClassLoader@62c8aeb3。 <{1}}之后的后一个字符串将被忽略。

  

- &gt; 2014-05-21 22:04:34.118 INFO [Core] sun.misc.Launcher$AppClassLoader@62c8aeb3 parent:   sun.misc.Launcher$ExtClassLoader@65459c6f

在上面,孩子是,,父母是sun.misc.Launcher$AppClassLoader@62c8aeb3

我有这个正则表达式sun.misc.Launcher$ExtClassLoader@65459c6f。它适用于第二个例子。但是对于第一个输出parent为:

  

sun.misc.Launcher$AppClassLoader@62c8aeb3,   sun.misc.Launcher$ExtClassLoader@65459c6f

但它应该:.* (.*) parents?: (.*),?.*

2 个答案:

答案 0 :(得分:4)

您可以使用此正则表达式:

(\S+) parents?: ([^,]+)

Working Demo

答案 1 :(得分:2)

默认情况下,正则表达式是贪婪的,你应该告诉它排除,

.* (.*) parents?: ([^,]*),?.*