簡體   English   中英

如何使用多種不同的模式?

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

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