带*和空格的多个单词的正则表达式

时间:2015-09-22 07:34:40

标签: java regex

我的正则表达式格式为“Exit * Order *”。当我在java中使用时,它没有按预期工作。

String pattern = "Exit* Order*";
String ipLine = "Exiting orders";

匹配:否

String pattern = "Exit Order";
String ipLine = "Exit order";

匹配:是的。

Java代码:         Pattern patrn = Pattern.compile(pattern,Pattern.CASE_INSENSITIVE);         Matcher match = patrn.matcher(ipLine);

任何人都可以让我知道在这种情况下应该是什么样的模式。

4 个答案:

答案 0 :(得分:0)

我相信你正在寻找类似的东西:

"Exit.* Order.*"

或者可能代替.*,例如\S*\w*[A-Za-z]*

您当前的正则表达式在单词的两端寻找零个或多个tr,例如它会匹配

Exi Orde
Exit Orde
Exitt Orde
Exi Order
Exi Orderr
...

答案 1 :(得分:0)

Exit\\w* Order\\w*

您应该使用此功能。.*可以比预期更多匹配。使用iignorecase标记

答案 2 :(得分:0)

您似乎只想匹配“退出订单”不区分大小写:

试试这个:

if (str.matches("(?i)exit order"))

或者将匹配仅限于您的示例,其中“订单可能是”o“的”O“,请使用:

if (str.matches("Exit [Oo]rder"))

答案 3 :(得分:-1)

Java不使用Linux regexp表达式: http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

使用此:

String pattern = "Exit.* Order.*";