[英]How to use multiple different patterns?
如果嘗試一個模式,如何檢查多模式正則表達式的字符串不是單個模式,但我需要它為多模式,我嘗試但它不起作用。 當我運行這些代碼時,我可以得到它們中的一個(時間或價格),但是當我將它們組合起來時,不會向我顯示任何輸出。
謝謝你的幫助....
這是我的代碼:
String line = "This order was places for QT 30.00$ ! OK? and time is 2:45";
String pattern = "\\d+[.,]\\d+.[$]"+"\\d:\\d\\d";
// Create a Pattern object
Pattern r = Pattern.compile(pattern);
// Now create matcher object.
Matcher m = r.matcher(line);
if (m.find( )) {
System.out.println("Found value: " + m.group(0) );
} else {
System.out.println("NO MATCH");
}
“+”運算符不會分隔模式 - 它會連接字符串。
你可以做的是提供一個接受兩組之間字符的模式。
String pattern = "(\\d+[.,]\\d+.[$]).*(\\d:\\d\\d)";
上面的括號是可選的。 如果包含它們,您可以將匹配的價格和時間作為單獨的字符串:
if (m.find( )) {
System.out.println("Found value: " + m.group(1) + " with time: " + m.group(2));
}
編輯:
剛注意到你的評論,你正在尋找OR,而不是和。
您可以使用X | Y
形式的表達式來完成此操作 X | Y
:
String pattern = "\\d+[.,]\\d+.[$]|\\d:\\d\\d";
這將匹配價格或時間,以先發生者為准。 你可以通過m.group(0)
獲得匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.