Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式匹配在特定标题下包含特定单词的句子_Javascript_Java_Regex_Regex Negation_Regex Group - Fatal编程技术网

Javascript 正则表达式匹配在特定标题下包含特定单词的句子

Javascript 正则表达式匹配在特定标题下包含特定单词的句子,javascript,java,regex,regex-negation,regex-group,Javascript,Java,Regex,Regex Negation,Regex Group,示例文本: JAVA 100程序员 使用101一元运算符 世界各地 .NET 200银光是最好的 获取应用程序的方法 201 Windows应用程序 当我给程序输入时 “JAVA”和“101”。这应该是真的。因为,101出现在-JAVA标题下 但是,当我以 “JAVA”和“200”。应该说是假的。因为,200不在JAVA标题下 以下是使用的正则表达式: String code = "JAVA"; String string = "100 Programmer" Pattern pattern

示例文本:

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;
}

有人能给这个正则表达式吗?

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

String JavaHeader = "100 Programmer";
boolean exists = JavaHeader.matches("100.*")

你的“示例文本”是什么格式?如何定义标题?您是否希望只将“JAVA”与“101”或“100”匹配,而将“.NET”与“200”或“201”匹配?您对此有多了解?到目前为止,请发布您的代码,包括您自己的正则表达式。到目前为止您尝试了什么?@jacobbourtjes是的,所以当我以“JAVA”和101的形式输入时。这意味着101属于这个标题。