[英]Regular expression for multiple words with * and space
我的正则表达式的格式为“退出*订单*”。 当我在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); 匹配器匹配= patrn.matcher(ipLine);
任何人都可以让我知道在这种情况下的模式是什么。
我相信您正在寻找类似的东西:
"Exit.* Order.*"
或代替.*
东西,例如\\S*
, \\w*
, [A-Za-z]*
。
您当前的正则表达式在单词的末尾寻找零个或多个t
和r
,例如,它将匹配
Exi Orde
Exit Orde
Exitt Orde
Exi Order
Exi Orderr
...
Exit\\w* Order\\w*
您应该使用此。 .*
可能比预期的匹配得多.*
i
或ignorecase
标志
似乎您只想不区分大小写地匹配“退出订单”:
尝试这个:
if (str.matches("(?i)exit order"))
或将匹配限制为您的示例,其中“订单”的“ O”可能为“ o”,请使用:
if (str.matches("Exit [Oo]rder"))
Java不使用Linux正则表达式: http : //docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
用这个:
String pattern = "Exit.* Order.*";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.