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