在Java中获取类的正则表达式
我有一个动态数组,它返回方法、类和参数。例如:在Java中获取类的正则表达式,java,regex,Java,Regex,我有一个动态数组,它返回方法、类和参数。例如: org.junit.internal.builders.AllDefaultPossibilitiesBuilder.ignoredBuilder()---begin--->count:1 我需要一个正则表达式来获取classorg.junit.internal.builders和count 如何使用正则表达式?我试过这个 (.*([.])) 我不确定这是否正确。您似乎在寻找包名,而不是类名 您可以使用此正则表达式捕获其部分: ^([a-
org.junit.internal.builders.AllDefaultPossibilitiesBuilder.ignoredBuilder()---begin--->count:1
我需要一个正则表达式来获取classorg.junit.internal.builders
和count
如何使用正则表达式?我试过这个
(.*([.]))
我不确定这是否正确。您似乎在寻找包名,而不是类名 您可以使用此正则表达式捕获其部分:
^([a-z][^.]+(?:\.[a-z][^.]*)*)\.([A-Z][^.]+)\.([\w]+\([^)]*\))[-]*([^-]+)[->]*([^:]+):([^:]*)
应用于您的字符串:
第1组:org.junit.internal.builders
第2组:AllDefaultPossibilityBuilder
第3组:ignoredBuilder()
第四组:开始
第5组:计数
第6组:1为什么在
[.]
周围有一个捕获组?您尝试的正则表达式模式背后的想法是什么?它似乎与你的尝试无关。更具体地说,您的模式非常通用,只关注
字符,但在您的输入中有几个字符。为什么您希望这样的模式只抓住您提到的部分?首先,您拥有的是一个以“.”作为分隔符的字符串,并且您希望匹配其中最后两个“.”之前的任何内容。然后,您可能希望匹配'-->'和':''之间的任何内容。类似于^(+.+)\..[^.]+\.[^.>]+>([^::]+.+$
的内容应该可以工作。它捕获字符串开头的任何内容,后跟。
,以及其后介于
和之间的任何内容:
。