【Hutool】提取字符串内同个标签的不同位置的所有值(正则匹配)

数据(字符串xmlStr)

<data>
	<reqType>1reqType>
	<reqContent>testreqContent>
data>
<data>
	<reqType>2reqType>
	<reqContent>test2reqContent>
data>
<data>
	<reqType>3reqType>
	<reqContent>test3reqContent>
data>

查询所有 reqContent 标签里面的内容,利用 Hutool 可以这样写

package ...

import cn.hutool.core.util.ReUtil;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;

import java.util.ArrayList;
import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Test.class)
public class ReUtilTest {

	@Test
	public void test() {
		String xmlStr = "\n" +
                "\t1\n" +
                "\ttest\n" +
                "\n" +
                "\n" +
                "\t2\n" +
                "\ttest2\n" +
                "\n" +
                "\n" +
                "\t3\n" +
                "\ttest3\n" +
                "";

		String newStr = xmlStr.replaceAll("[\\t\\n\\r]", "");
		// ReUtil.findAll 方法的第三个参数为 group,
		// 如果 group = 0,取得 test ... 组成的集合
		// 如果 group = 1,取得 test... 组成的集合
        List<String> reqContentList = ReUtil.findAll("(.*?)", newStr, 1, new ArrayList<>());
        
        for (String reqContent : reqContentList) {
            System.out.println(reqContent);
        }
        // test test2 test3
	}
}

你可能感兴趣的:(#,Hutool,java,经验分享)