如何检查特定单词旁边是否有数字?

时间:2016-01-25 09:53:14

标签: java

我需要验证" 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>";

2 个答案:

答案 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");
}