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
- 字母表
- 特殊人物
- 日期(年月日)
有人能帮我吗?我尝试了以下
[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}