2013-05-17 301 views
3

我需要一個正則表達式,其包含有序串話,特殊字符和日期:正則表達式匹配

  • 字母
  • 一個特殊字符
  • 日期(日/月/年)

eg

Payments - received by 04/13/13 

任何人都可以幫我解決這個問題嗎?我嘗試了以下[a-z]* - [a-z]* 99/99/99,但它不起作用。

回答

1
pattern = Pattern.compile("[a-zA-Z]* - [a-zA-Z]* [0-9]{2}/[0-9]{2}/[0-9]{2}"); 
+0

歡迎您 – luksch

0

嘗試在Java中使用正則表達式:

Pattern pat = Pattern.compile(".+ - .+\\d\\d/\\d\\d/\\d\\d"); 

要檢查是否匹配字符串:

String str = "Payments - received by 04/13/13"; 
Matcher m = p.matcher(str); 
if (m.find()) 
    System.out.println("the string matches!"); 
+1

謝謝奧斯卡..它是工作.. – user2394281

0

嘗試用d小號更換787-9,d是[0-9]一個佔位符。 另外[a-z]不等於[A-Za-z]

當然,這仍然將匹配無效日期,如第99個月

0

幾乎35,但有幾個問題:

  • [A-Z]僅匹配小寫字符。對於任何數字/字母,您都可以使用\ w,對於小寫字母和大寫字符,您只能使用[a-zA-Z]。
  • 要在那裏獲得空格,您可以使用[\ w]或[a-zA-Z](注意末尾有額外的空格)
  • 9與字符字面意思相符9.您可以使用\ d匹配任何數字。

試試這個:

[a-zA-z ]* - [a-zA-Z ]* \d{2}/\d{2}/\d{2} 
+0

我不認爲你可以有一個空間的'''[]'' ' – luksch

+0

似乎好嗎? http://ideone.com/0fh5aR – Lily