匹配字符串的模式

时间:2011-03-01 16:59:47

标签: java regex

我需要验证字符串是否具有以下格式/序列

LGaaaaaaaaaaYYMMDDnnnnn

要使字符串有效,必须以字符“LG”开头,后跟10个字符,后跟格式为(YYMMDD)的日期,后跟5位数字。

以下是我的想法

String patter = ^LG{1}[a-z][A-Z]{10}[0-9]{6}[0-9]{5}
  • 如何检查字符串是否以“LG”
  • 开头
  • 如何检查“LG”之后的十个字符确实在字符“LG”
  • 之后
  • 如何检查YYMMDD是否为有效日期
  • 如何检查字符串末尾的数字是否正好是5位数。

- 我可以使用Simpledateformat将字符串验证为我认为的日期。

由于

2 个答案:

答案 0 :(得分:2)

这取决于你如何使用它。如果您使用Mather.matches方法,则不需要^,因为它将与整个字符串匹配。如果你使用find()方法,那么^将产生差异

答案 1 :(得分:1)

  1. 我认为你的正则表达应该更像是:LG[a-zA-Z]{10}[0-9]{6}[0-9]{5}
  2. 如果字符串与模式匹配,请使用substring拉出日期并使用SimpleDateFormat对其进行解析,以验证它确实是一个好日期。