正则表达式正常here,但是当我运行它时,我的脚本会在下划线上被阻塞。下划线不应该被转义......这是什么交易?
只是尝试抓住任何领先/尾随$
和_
:
def someString1 = "__test"
def someString2 = "$test"
def someString3 = "test_"
def someString4 = "$test_"
//...
def matcher = someString1 =~ /([\$_]*)(.+?)([\$_]*)/
使用Netbeans作为我的IDE和正则表达式的着色表明它认为下划线是变量。如果美元符号被转义或未被转义,情况也是如此。
答案 0 :(得分:3)
正则表达式中的express $_
是整个输入字符串的反向引用。尝试将正则表达式更改为:
([_\$]*)(.+?)([_\$]*)
答案 1 :(得分:2)
这是因为$是groovy中的String and GString占位符。由于你使用groovy来执行正则表达式,你将不得不逃避$后面的任何东西,或者我确定它可能是硬编码字符串中的表达式..
def matcher = someString =~ /([\$\_]*)(.+?)([\$\_]*)/