簡體   English   中英

帶*和空格的多個單詞的正則表達式

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

您當前的正則表達式在單詞的末尾尋找零個或多個tr ,例如,它將匹配

Exi Orde
Exit Orde
Exitt Orde
Exi Order
Exi Orderr
...
Exit\\w* Order\\w*

您應該使用此。 .*可能比預期的匹配得多.* iignorecase標志

似乎您只想不區分大小寫地匹配“退出訂單”:

嘗試這個:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM