[英]Java - Escaping + character in RegEx
我的代码是:
if (tokens.matches("true || false")){
checkAssignments (i+1);
return;
}
else{
\\do something else
}
在此代码片段中,token的值默认情况下设置为“ true”。 但是控件总是转到其他部分,这意味着正则表达式的计算结果为false。
而且,如果我想检查字符串中是否存在字符“ +”,那么Java中的正则表达式将是什么。 我试过了 :
token.matches(\\+);
和
token.matches(\\Q+\\E);
但这些都不起作用。 任何帮助都会很感激。
要在几种选择之间进行选择,如果满足任一条件,则允许匹配,请使用管道“ |” 用于分隔替代方案的符号:
if (tokens.matches("true|false")) {
// ...
}
要检查您的String
包含+
,可以使用以下正则表达式:
if (string.matches(.*\\+.*)) { ... }
matches()
使用您的正则表达式对整个字符串执行匹配。 它不会检查部分内容。
例如:
"this+this".matches("\\+"); // returns false
"+".matches("\\+"); // returns true
"this+this".matches(".*\\+.*"); // returns true
但是控件总是转到其他部分,这意味着正则表达式的计算结果为false。
请注意,您的正则表达式中的true
后面有一个空格。 这是不容忽视的。 它将匹配字符串"true "
,并在末尾加空格。 另外, ||
在正则表达式中不是OR
。 它只是一个管道- |
。
所以这可以正常工作:
if (token.matches("true|false")) {
checkAssignments (i+1);
return;
} else {
// do something else
}
如果我想检查字符串中是否存在字符“ +”,则Java中的正则表达式将是什么。
为什么您需要正则表达式,而不是使用String#contains()
方法?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.