正则表达式检查+, - 或*是否在字符串中的两个单词之间

时间:2014-09-05 12:12:56

标签: java regex

我需要一个正则表达式来检查给定String中两个单词之间是否有+, - 或*。以下是一些例子:

"wordA + wordB" -> match
"wordA-wordB" -> match
"wordA wordB +" -> don't match

我尝试了[\\w][\\+\\*\\-][\\w].[\\+\\*\\-].,但两者都不起作用。 我希望它能确定我想要的东西。提前谢谢。

3 个答案:

答案 0 :(得分:2)

您无需转义字符类中存在的字符+*。当存在前一个和后一个标记时,您必须转义-符号。

^\w+\s*[+*-]\s*\w+$

Java正则表达式,

^\\w+\\s*[+*-]\\s*\\w+$

使用匹配功能时不需要放置锚点。

示例:

String xxx = "\\w+\\s*[+*-]\\s*\\w+";
String x = "wordA + wordB";
if(x.matches(xxx)) {
        System.out.println("matches");
}
else {
           System.out.println("no match found ");
} // matches

答案 1 :(得分:2)

尝试使用正则表达式:

"\\w+\\s*[-+*]\\s*\\w+"

答案 2 :(得分:0)

 (?=\w+\s*[+\-*]+\s*\w+)^.*$

这很有效。参见演示。

http://regex101.com/r/oC3nN4/1