-4

示例文本:

JAVA

100名程序员

101 一元运算符在世界各地使用。

。网

200 Silver Light是获得应用程序的最佳方式

201 Windows 应用程序


当我输入程序“JAVA”和“101”时。它应该匹配为真。因为,101 出现在标题 - JAVA 下。

但是,当我输入“JAVA”和“200”时。应该说是假的。因为,200 不在标题 JAVA 下。

这是使用的正则表达式:

String code = "JAVA";
String string = "100 Programmer"

Pattern pattern = Pattern.compile("" + 
escapeString(code) + "((?![\\t][A-Z\\s ]).)*" + escapeString(string) + "", Pattern.DOTALL);

Matcher matcher = pattern.matcher(doc);

boolean isFound = matcher.find();
System.out.println(isFound);


String escapeString(String string) {
String escaped = null;
if (null !== string) {
   escaped = Pattern.quote(string);
}
return escaped;
}

任何人都可以为此提供正则表达式吗?

4

1 回答 1

0

你应该声明你是如何编码每个标题下的标题和值的?我认为答案从这一点开始,你是如何对标题进行分组的。如果您将每个标题下的值存储在一个字符串中,那么这个正则表达式应该可以正常工作:

String JavaHeader = "100 Programmer";
boolean exists = JavaHeader.matches("100.*")
于 2018-07-09T18:20:59.640 回答