Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.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 如何对匹配模式的正则表达式的重复出现进行分组_Java_Regex - Fatal编程技术网

Java 如何对匹配模式的正则表达式的重复出现进行分组

Java 如何对匹配模式的正则表达式的重复出现进行分组,java,regex,Java,Regex,我有一个java字符串 59701=Application+Development"">app dev</a>| <a href=""/search/search.asp?cdlCustomFieldValue001=Data+Analytics+(formerly+Business+Intelligence)"">Data Analytics (formerly Business Intelligence)</a>| <a href=""/sea

我有一个java字符串

59701=Application+Development"">app dev</a>| <a href=""/search/search.asp?cdlCustomFieldValue001=Data+Analytics+(formerly+Business+Intelligence)"">Data Analytics (formerly Business Intelligence)</a>| <a href=""/search/search.asp?cdlCustomFieldValueID012=Small+and+Midmarket+Cloud+Solutions"">Small and Midmarket Cloud Solutions</a></td></tr><tr class=""CstmFldRow noVpad CfProfessional"" style=""""><td valign=""top""><label class=""CstmFldLbl"">
59701=Application+Development”“>appdev ||
我需要对其应用正则表达式,以便只提取文本app dev、Data Analytics(以前称为Business Intelligence)和 中端市场云解决方案

我使用了下面的正则表达式

        String text_string= "59701=Application+Development"">app dev</a>| <a href=""/search/search.asp?cdlCustomFieldValue001=Data+Analytics+(formerly+Business+Intelligence)"">Data Analytics (formerly Business Intelligence)</a>| <a href=""/search/search.asp?cdlCustomFieldValueID012=Small+and+Midmarket+Cloud+Solutions"">Small and Midmarket Cloud Solutions</a></td></tr><tr class=""CstmFldRow noVpad CfProfessional"" style=""""><td valign=""top""><label class=""CstmFldLbl"">";

        Pattern pattern_sub51 = Pattern.compile("\"\">(.*?)</a>");
        Matcher matchersub51 = pattern_sub51.matcher(text_string);
                 if(matchersub51.find())
                 {
                     store_variable=matchersub51.group(1).trim();

                 }
String text_String=“59701=Application+Development”“>app dev | |”;
Pattern Pattern\u sub51=Pattern.compile(“\”\”>(.*);
Matcher matchersub51=pattern_sub51.Matcher(text_string);
if(matchersub51.find())
{
store_variable=matchersub51.group(1.trim();
}

现在它只提取应用程序开发人员的文本。然而,要找到其他文本值,我需要使用模式并重复匹配。有没有一种方法可以递归地找到值并将它们存储在java变量中

是的正如@wiktor Stribizew所建议的,下面的代码是有效的。谢谢

import java.util.*;
import java.util.regex.*;
import java.lang.*;
import java.io.*;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String text_string= "59701=Application+Development\"\">app dev</a>| <a href=\"\"/search/search.asp?cdlCustomFieldValue001=Data+Analytics+(formerly+Business+Intelligence)\"\">Data Analytics (formerly Business Intelligence)</a>| <a href=\"\"/search/search.asp?cdlCustomFieldValueID012=Small+and+Midmarket+Cloud+Solutions\"\">Small and Midmarket Cloud Solutions</a></td></tr><tr class=\"\"CstmFldRow noVpad CfProfessional\"\" style=\"\"\"\"><td valign=\"\"top\"\"><label class=\"\"CstmFldLbl\"\">";
        Pattern pattern_sub51 = Pattern.compile("\"\">(.*?)</a>");
        Matcher matchersub51 = pattern_sub51.matcher(text_string);
        List<String> res = new ArrayList<>();
        while(matchersub51.find())
        {
            res.add(matchersub51.group(1).trim());
        }
        System.out.println(res);
    }
}
import java.util.*;
导入java.util.regex.*;
导入java.lang.*;
导入java.io.*;
表意文字
{
公共静态void main(字符串[]args)引发java.lang.Exception
{
String text_String=“59701=应用程序+开发\“\”>app dev|;
Pattern Pattern\u sub51=Pattern.compile(“\”\”>(.*);
Matcher matchersub51=pattern_sub51.Matcher(text_string);
List res=new ArrayList();
while(matchersub51.find())
{
res.add(matchersub51.group(1.trim());
}
系统输出打印项次(res);
}
}

while(matchersub51.find())
,而不是
if(matchersub51.find())
@saka:OP模式按原样工作,只需将
if
替换为
while
-。可能问题在于将值添加到结果中,我建议使用字符串列表()。