Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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
java中的正则表达式 String s=“(参见草饲牛肉)它们已被用于”+ “造纸自”+ “公元前2400年或以前。”;_Java_Regex_String_Html Parsing - Fatal编程技术网

java中的正则表达式 String s=“(参见草饲牛肉)它们已被用于”+ “造纸自”+ “公元前2400年或以前。”;

java中的正则表达式 String s=“(参见草饲牛肉)它们已被用于”+ “造纸自”+ “公元前2400年或以前。”;,java,regex,string,html-parsing,Java,Regex,String,Html Parsing,在上面的字符串中,我将html与文本相互混合 那么要求是输出看起来像:- 它们从公元前2400年或以前就被用于造纸 有人能帮我用一个通用正则表达式从给定的输入中生成所需的输出吗 提前谢谢 您已收到警告。以下表达式: String s= "(See <a href=\"/wiki/Grass_fed_beef\" title=\"Grass fed beef\" " + "class=\"mw-redirect\">grass fed beef.) They ha

在上面的字符串中,我将html与文本相互混合

那么要求是输出看起来像:-

它们从公元前2400年或以前就被用于造纸

有人能帮我用一个通用正则表达式从给定的输入中生成所需的输出吗

提前谢谢


您已收到警告。

以下表达式:

String s= "(See <a href=\"/wiki/Grass_fed_beef\" title=\"Grass fed beef\" " +
          "class=\"mw-redirect\">grass fed beef.) They have been used for " +
          "<a href=\"/wiki/Paper\" title=\"Paper\">paper-making since " +
          "2400 BC or before.";
\([^)]*?\)\124;]*?>
将匹配任何看起来像HTML标记和任何括号文本的内容。将所述文本替换为“”,即可


注意:如果您尝试匹配任何包含脚本标记的字符串,或“HTML”,其中作者没有费心转义(当它们没有用作标记分隔符时),或a(没有a),则事情可能不会如您所希望的那样工作。

很抱歉,我不熟悉这一点。你能告诉我警告是什么吗?我可能不明白。用一种不那么恐怖的轰动一时的口吻:他警告你不应该用正则表达式来解析(X)HTML。@新手基本上是说正则表达式不适合解析HTML。除非你有一个非常具体的案例。你应该改用HTML解析器工具。是的,我用过Jericho HtmlParser。但这些都是特定的情况,我似乎无法找到一个足够好的正则表达式来处理这些情况。这个警告性的评论真的让我很困惑。非常感谢你的帮助。对于我提出问题的方式给您带来的不便,我深表歉意。但我感谢你的理解。我会确保下次更好地陈述我的目标。如果不是太麻烦的话,我似乎无法理解这个正则表达式是如何起作用的。你能把它拆开吗?如果没有,也没关系,我会设法弄清楚。再次感谢你的帮助。这实际上是两部分。第一个是([^)]*?),它将匹配a(,不匹配的任何字符数)(尽管尽可能少——因此是?),然后是a)。第二部分是]*?>,它将匹配一个开口,现在我想起来了,实际上可以取出。它永远不会超过第一个分隔符,因为我们指定分隔符不能是内部字符串的一部分。非常感谢。这真的帮了大忙。
\([^)]*?\)|<[a-zA-Z/][^>]*?>