我有一些以字符串形式输入的数据,我需要提取或打印出中间组的月份值,其格式为:
[项目值] [月份值] [年份值]
规则如下:
项目值 = 长度可以是1-3个字符(或数字)
月份值 = 单个字母[a-z]
年份值 = 可以是表示日历年份的1、2或4位数字
一些示例输入: 输入1
然后在输入上调用matcher来使用find()方法找到组,这种情况下应该是monthvalue,它应该是matcher.group(2)。
我以为我很接近了,但一个问题是如何在“yearvalue”中包含长度为1、2和4,但排除长度为3。我的方法好吗?在我的编译模式中有什么遗漏吗?
请告诉我!
一些示例输入: 输入1
AP18
输出1
P
输入2
QZAB19
输出2
B
输入3
ARM8
输出3
M
Pattern pattern = Pattern.compile("([a-zA-Z0-9]{1,3})([a-z])([0-9]{1,4})");
然后在输入上调用matcher来使用find()方法找到组,这种情况下应该是monthvalue,它应该是matcher.group(2)。
Matcher m = pattern.matcher("OneOfTheExampleInputStringsFromAbove");
if (matcher.find()) {
System.out.println(matcher.group(2));
}
我以为我很接近了,但一个问题是如何在“yearvalue”中包含长度为1、2和4,但排除长度为3。我的方法好吗?在我的编译模式中有什么遗漏吗?
请告诉我!