mytest.java

来自「简易邮件系统」· Java 代码 · 共 27 行

JAVA
27
字号
package net.acai.filter;
import java.util.regex.*;

public class myTest {
    public static void main(String[] args) throws Exception {
        String s = "url test of ubbtag like [url]nic.biti.edu.cn[/url]"+
            " and [URL]http://mail.biti.edu.cn[/URL] and so on use regex";
        Pattern p = Pattern.compile(
            "(\\[(URL)\\])(((http://)|(https://))?)([^\\[]*)(\\[(\\/URL)\\])",
            Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(s);
        StringBuffer sb = new StringBuffer();
        boolean result = m.find();
        while(result) {
			for(int i=0;i<m.groupCount();i++)
				System.out.println(i+" "+m.group(i));
            m.appendReplacement(sb,"<a href=\"");
            if("".equals(m.group(4)))
                sb.append("http://"+m.group(8)+"\">"+m.group(8)+"</a>");
            else
                sb.append(m.group(4)+m.group(8)+"\">"+m.group(4)+m.group(8)+"</a>");
            result = m.find();
        }
        m.appendTail(sb);
        System.out.println(sb.toString());
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?