【发布时间】:2018-07-09 14:55:32
【问题描述】:
示例文本:
JAVA
100 名程序员
101 使用一元运算符 世界各地。
.NET
200 银光是最好的 申请途径
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;
}
任何人都可以为此提供正则表达式吗?
【问题讨论】:
-
您的“示例文本”是什么格式的?如何定义标题?
-
您是否只想将“JAVA”与“101”或“100”匹配,而仅将“.NET”与“200”或“201”匹配?
-
您在这方面的进展如何?到目前为止,请发布您的代码,包括您自己的正则表达式。
-
到目前为止你有什么尝试?
-
@JacobBoertjes 是的,所以当我输入“JAVA”和 101 时。这意味着 101 在该标题下。
标签: javascript java regex regex-negation regex-group