我正在尝试创建一个正确的正则表达式来验证某些值,我将在下面解释:
我必须用他来验证这一行:
$_globalVariables/ns:GlobalVariables/VARIABLENAME/ESB/System
$_globalVariables/ns:GlobalVariables/VARIABLENAME2/ESB/System
$_globalVariables/ns:GlobalVariables/VARIABLENAME3/ESB/System
这一行:
$_globalVariables/ns:GlobalVariables/[varname]/ESB/Sistema
我尝试了一些组合,并阅读有关正则表达式,但我是" newbie"在这个主题中,我无法得到正确的结果。
我认为有点像这样:
\$_globalVariables/ns:GlobalVariables/(.*?)/ESB/System
\$_globalVariables/ns:GlobalVariables/
- >要在开始时验证的文本(.*?)
- >一切/ESB/System
- >数学文字结束对不起我的英文,如果有人需要更多信息,请问我。
答案 0 :(得分:3)
您必须转义$
字符,因为它是一个保留字符,表示根据上下文的行尾/输入。
以下是:
String[] input = {
"$_globalVariables/ns:GlobalVariables/VARIABLENAME/ESB/System",
"$_globalVariables/ns:GlobalVariables/VARIABLENAME2/ESB/System",
"$_globalVariables/ns:GlobalVariables/VARIABLENAME3/ESB/System" };
Pattern p = Pattern.compile("^\\$_globalVariables/ns:GlobalVariables/(.+?)/ESB/System");
for (String s: input) {
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println("Found: " + m.group());
System.out.println("\t with variable name: " + m.group(1));
}
}
<强>输出强>
Found: $_globalVariables/ns:GlobalVariables/VARIABLENAME/ESB/System
with variable name: VARIABLENAME
Found: $_globalVariables/ns:GlobalVariables/VARIABLENAME2/ESB/System
with variable name: VARIABLENAME2
Found: $_globalVariables/ns:GlobalVariables/VARIABLENAME3/ESB/System
with variable name: VARIABLENAME3
备注强>
$
在Pattern
- &gt;中被双重转义\\$
Pattern
页面API here