3

我需要一个正则表达式来包含按顺序包含的字符串:

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

例如

Payments - received by 04/13/13 

有人可以帮我解决这个问题吗?我尝试了以下[a-z]* - [a-z]* 99/99/99但它不工作。

4

4 回答 4

1
pattern = Pattern.compile("[a-zA-Z]* - [a-zA-Z]* [0-9]{2}/[0-9]{2}/[0-9]{2}");
于 2013-05-17T14:26:21.473 回答
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!");
于 2013-05-17T14:26:00.873 回答
0

尝试用ds 替换 9s,d 是[0-9]. 也不[a-z]等于。[A-Za-z]

当然,这仍然会匹配无效日期,例如第 99 个月的 35 日

于 2013-05-17T14:26:35.327 回答
0

差不多,但有几个问题:

  • [az] 只匹配小写字符。您可以将 \w 用于任何数字/字母,或者仅将 [a-zA-Z] 用于大小写字符。
  • 要在其中获得空格,您可以使用 [\w ] 或 [a-zA-Z ] (注意末尾有额外的空间)
  • 9 从字面上匹配字符 9。您可以使用 \d 匹配任何数字。

试试这个:

[a-zA-z ]* - [a-zA-Z ]* \d{2}/\d{2}/\d{2}
于 2013-05-17T14:27:29.253 回答