我正在使用Java解析Excel电子表格中的文本。
我需要验证文本中是否存在3个整数的序列。
整数序列是:
序列中的整数可以有1位或2位数。
这是我的尝试:
*((\d|\d\d)[^\w](\d|\d\d)[^\w](\d|\d\d))*
*表示我之前可以包含字符,[\ d | \ d \ d]是一个或两个数字的数字,而[^ \ w]是非单词字符?
CPI WEIGHTS 05.1.2 : CARPETS & OTHER FLOOR COVERINGS
CPIH INDEX 05.2 : HOUSEHOLD TEXTILES 2005=100
答案 0 :(得分:2)
你的上一条评论实际上澄清了这个问题。
假设您正在寻找以空格分隔的1位或2位数字的点分隔序列,以下是一个示例:
String ok = "CPI WEIGHTS 05.1.2 : CARPETS & OTHER FLOOR COVERINGS";
String notOk = "CPIH INDEX 05.2 : HOUSEHOLD TEXTILES 2005=100";
Pattern p = Pattern.compile("(\\d{1,2}(\\.|\\s)){3}");
Matcher m = p.matcher(ok);
while (m.find()) {
System.out.printf("Found: %s%n", m.group());
}
m = p.matcher(notOk);
while (m.find()) {
System.out.printf("Found: %s%n", m.group());
}
<强>输出强>
Found: 05.1.2