繁体   English   中英

Java-RegEx中的转义+字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM