Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Regex 如何从中正则化类名?_Regex_Groovy - Fatal编程技术网

Regex 如何从中正则化类名?

Regex 如何从中正则化类名?,regex,groovy,Regex,Groovy,想象一下,我有一条长长的绳子,里面有一段文字 (BlahUtils.loggerName(MyClass.class.getName()) 我想提取出“MyClass” 如果我这样做: def matcher1 = test =~ /MyClass/ matcher1[0] 我明白了。但是我的类可以是任何东西,这就是我想要提取出来的。我该怎么做?您可以使用 /(?<=loggerName\()\w+(?=\.class\b)/ 你可以用 /(?<=loggerName\()\w

想象一下,我有一条长长的绳子,里面有一段文字

(BlahUtils.loggerName(MyClass.class.getName())
我想提取出“MyClass”

如果我这样做:

def matcher1 = test =~ /MyClass/
matcher1[0]
我明白了。但是我的类可以是任何东西,这就是我想要提取出来的。我该怎么做?

您可以使用

/(?<=loggerName\()\w+(?=\.class\b)/
你可以用

/(?<=loggerName\()\w+(?=\.class\b)/
简单易懂:

'(BlahUtils.loggerName(MyClass.class.getName())'.eachMatch( /loggerName\(([^\(\)\.]+)/ ){ println it[ 1 ] }
提供了
MyClass

简单易懂的功能:

'(BlahUtils.loggerName(MyClass.class.getName())'.eachMatch( /loggerName\(([^\(\)\.]+)/ ){ println it[ 1 ] }

给定
MyClass

值是否始终跟在
后面。class
?它总是按字母顺序吗?检查,
test=~/\w+(?=\.class\b)/
这是一个好的开始。但是字符串中可能还有其他的instances.class,所以loggerName(也很重要。我尝试
defm=(test=~/\w+(?=loggerName\(\.class\b)),如果(m){println m.group();}
,但这不起作用,
test=~/(?值是否总是跟在
.class
后面?是否总是按字母顺序?检查,
测试=~/\w+(?=\.class\b)/
这是一个好的开始。但是字符串中可能还有其他实例.class,所以loggerName(也很重要。如果(m){println m.group(),我会尝试
定义m=(测试=~/\w+(?=loggerName\.class\b)/)}
但这不起作用那么
test=~/(?)?