我需要验证" Page"字符串中的单词旁边有一个整数。
需要检查页面编号或页面内容。
数据来自此格式的xml文件。
这是一个页码为
的示例数据String strLineText ="<Line><![CDATA[AB1234 Date 02/31/18 Company 1234 Very Big Company USD Page 1]]></Line>";`
页面和数字之间的空格不明确。
这是一个包含页面字的示例数据
String strLineText ="<Line><![CDATA[1234AB1234 - 1234- Page Cash Savings]]></Line>";
答案 0 :(得分:5)
您可以使用正则表达式,如下所示:
"Page\\s+\\d+"
但是,请注意,正则表达式和标记通常不能很好地协同工作,因此仅使用它来查找实例,而不是在上下文中解析文档。
完整示例
String hasPageNumber = "<Line><![CDATA[AB1234 Date 02/31/18 Company 1234 Very Big Company USD Page 1]]></Line>";
String noPageNumber = "<Line><![CDATA[1234AB1234 - 1234- Page Cash Savings]]></Line>";
Pattern p = Pattern.compile("Page\\s+\\d+");
Matcher m = p.matcher(hasPageNumber);
if (m.find()) {
System.out.printf("Found: %s%n", m.group());
}
else {
System.out.println("Not found");
}
m = p.matcher(noPageNumber);
if (m.find()) {
System.out.printf("Found: %s%n", m.group());
}
else {
System.out.println("Not found");
}
<强>输出强>
Found: Page 1
Not found
答案 1 :(得分:1)
String hasPageNumber = "<Line><![CDATA[AB1234 Date 02/31/18 Company 1234 Very Big Company USD Page 1]]></Line>";
String noPageNumber = "<Line><![CDATA[1234AB1234 - 1234- Page Cash Savings]]></Line>"
if(hasPageNumber.matches("(.*)Page *\\d+(.*)")){
System.out.println("yes");
}