Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中获取类的正则表达式_Java_Regex - Fatal编程技术网

在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
我需要一个正则表达式来获取class
org.junit.internal.builders
count

如何使用正则表达式?我试过这个

(.*([.]))

我不确定这是否正确。

您似乎在寻找包名,而不是类名

您可以使用此正则表达式捕获其部分:

^([a-z][^.]+(?:\.[a-z][^.]*)*)\.([A-Z][^.]+)\.([\w]+\([^)]*\))[-]*([^-]+)[->]*([^:]+):([^:]*)
应用于您的字符串:

第1组:org.junit.internal.builders

第2组:AllDefaultPossibilityBuilder

第3组:ignoredBuilder()

第四组:开始

第5组:计数


第6组:1

为什么在
[.]
周围有一个捕获组?您尝试的正则表达式模式背后的想法是什么?它似乎与你的尝试无关。更具体地说,您的模式非常通用,只关注
字符,但在您的输入中有几个字符。为什么您希望这样的模式只抓住您提到的部分?首先,您拥有的是一个以“.”作为分隔符的字符串,并且您希望匹配其中最后两个“.”之前的任何内容。然后,您可能希望匹配'-->'和':''之间的任何内容。类似于
^(+.+)\..[^.]+\.[^.>]+>([^::]+.+$
的内容应该可以工作。它捕获字符串开头的任何内容,后跟
,以及其后介于
之间的任何内容: