我正在尝试拆分一个字符串,其中包含几个方法和类的名称,以及我正在尝试提取的其他信息。方法和类由以下内容分隔:对于方法,我只需要名称而不需要参数。我试图定义一个正则表达式来表示(...),其中...表示任何东西。
以下是我目前所做的工作:
String str = "M:org.apache.commons.math3.genetics.CycleCrossover:mate(org.apache.commons.math3.genetics.AbstractListChromosome,org.apache.commons.math3.genetics.AbstractListChromosome) (O)java.util.HashSet:<init>(int)";
String[] arr = line.split(":|[(&&[a-z|A-Z]&&)]");
这将得到以下结果:
M
org.apache.commons.math3.genetics.CycleCrossover
mate(org.apache.commons.math3.genetics.AbstractListChromosome,org.apache.commons.math3.genetics.AbstractListChromosome) (O)java.util.HashSet
<init>(int)
这在技术上和只使用":"是一样的,我试过各种不同的模式,但我得到的壁橱是如下所示:
String[] arr = line.split(":| |[(]|[)]");
其产生:
M
org.apache.commons.math3.genetics.CycleCrossover
mate
org.apache.commons.math3.genetics.AbstractListChromosome,org.apache.commons.math3.genetics.AbstractListChromosome
O
java.util.HashSet
<init>
int
最后我想得到的是
M
org.apache.commons.math3.genetics.CycleCrossover
mate
java.util.HashSet
<init>
1条答案
按热度按时间hrysbysz1#
你能给予这个吗:
现在应该如下所示:
\\(
和)//
,)//
将匹配()
。对于(.*?)
,.*?
将匹配任何字符零或任何内容,()
是组。