Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于匹配单词、特殊字符和日期的正则表达式_Java_Regex - Fatal编程技术网

Java 用于匹配单词、特殊字符和日期的正则表达式

Java 用于匹配单词、特殊字符和日期的正则表达式,java,regex,Java,Regex,我需要一个正则表达式用于字符串,该字符串按顺序包含: 字母表 特殊人物 日期(年月日) e、 g 有人能帮我吗?我尝试了以下[a-z]*-[a-z]*99/99/99,但它不起作用。尝试在Java中使用此正则表达式: Pattern pat = Pattern.compile(".+ - .+\\d\\d/\\d\\d/\\d\\d"); 要检查字符串是否匹配,请执行以下操作: String str = "Payments - received by 04/13/13"; Matcher

我需要一个正则表达式用于字符串,该字符串按顺序包含:

  • 字母表
  • 特殊人物
  • 日期(年月日)
e、 g


有人能帮我吗?我尝试了以下
[a-z]*-[a-z]*99/99/99
,但它不起作用。

尝试在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!");

尝试用
d
s替换9s,d是
[0-9]
的占位符。 而且
[a-z]
不等于
[a-Za-z]


当然,这仍然会与无效日期相匹配,如99个月的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}

我认为在
[]
pattern = Pattern.compile("[a-zA-Z]* - [a-zA-Z]* [0-9]{2}/[0-9]{2}/[0-9]{2}");
[a-zA-z ]* - [a-zA-Z ]* \d{2}/\d{2}/\d{2}