package com.xiaoleilu.hutool.core.util;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import com.xiaoleilu.hutool.util.CollectionUtil;
import com.xiaoleilu.hutool.util.ReUtil;
public class ReUtilTest {
final String content = "ZZZaaabbbccc中文1234";
@Test
public void getTest() {
String resultGet = ReUtil.get("\\w{2}", content, 0);
Assert.assertEquals("ZZ", resultGet);
}
@Test
public void extractMultiTest() {
// 抽取多个分组然后把它们拼接起来
String resultExtractMulti = ReUtil.extractMulti("(\\w)aa(\\w)", content, "$1-$2");
Assert.assertEquals("Z-a", resultExtractMulti);
}
@Test
public void delFirstTest() {
// 删除第一个匹配到的内容
String resultDelFirst = ReUtil.delFirst("(\\w)aa(\\w)", content);
Assert.assertEquals("ZZbbbccc中文1234", resultDelFirst);
}
@Test
public void findAllTest() {
// 查找所有匹配文本
List<String> resultFindAll = ReUtil.findAll("\\w{2}", content, 0, new ArrayList<String>());
ArrayList<String> expected = CollectionUtil.newArrayList("ZZ", "Za", "aa", "bb", "bc", "cc", "12", "34");
Assert.assertEquals(expected, resultFindAll);
}
@Test
public void getFirstNumberTest() {
// 找到匹配的第一个数字
Integer resultGetFirstNumber = ReUtil.getFirstNumber(content);
Assert.assertEquals(Integer.valueOf(1234), resultGetFirstNumber);
}
@Test
public void isMatchTest() {
// 给定字符串是否匹配给定正则
boolean isMatch = ReUtil.isMatch("\\w+[\u4E00-\u9FFF]+\\d+", content);
Assert.assertTrue(isMatch);
}
@Test
public void replaceAllTest() {
//通过正则查找到字符串,然后把匹配到的字符串加入到replacementTemplate中,$1表示分组1的字符串
//此处把1234替换为 ->1234<-
String replaceAll = ReUtil.replaceAll(content, "(\\d+)", "->$1<-");
Assert.assertEquals("ZZZaaabbbccc中文->1234<-", replaceAll);
}
@Test
public void escapeTest() {
//转义给定字符串,为正则相关的特殊符号转义
String escape = ReUtil.escape("我有个$符号{}");
Assert.assertEquals("我有个\\$符号\\{\\}", escape);
}
}