⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regmathertest3.java

📁 Java 正则表达式测试用例:后向引用二法 backreferences
💻 JAVA
字号:
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import junit.framework.TestCase;

public class RegMatherTest3 extends TestCase {
	/**
	 * 后向引用 backreferences
	 * 示例:取 HTML 元素的 outerHTML
	 * 向后引用会降低引擎的速度,因为它需要存储匹配的组。
	 * 如果你不需要向后引用,你可以告诉引擎对某个组不存储。例如:Get(?:Value)。
	 * 其中“(”后面紧跟的“?:”会告诉引擎对于组(Value),不存储匹配的值以供后向引用。
	 */
	public void testBackreferences() {
		Pattern p = Pattern.compile("(<([^>]+)>.*</\\1>)");
		String s = "This is a <EM>first</EM> test <STRONG>of All.</STRONG>";
		Matcher m = p.matcher(s);
		if (m.find()) {
			//得到匹配
			assertEquals(m.group(2), "<EM>first</EM>");
			//全部替换
			assertEquals(m.replaceAll("EL"), "This is a EL test EL");
		}
	}

	public void testBackreferences2() {
		Pattern p = Pattern.compile("^BEGIN:VBODY(.|\\n)+END:VBODY$", Pattern.MULTILINE);
		String s = "BEGIN:VMSG\nVERSION:1.1\nX-IRMC-STATUS:READ\nX-IRMC-BOX:INBOX\nX-NOK-DT:20071024T144128Z\nX-MESSAGE-TYPE:DELIVER\nBEGIN:VCARD\nVERSION:3.0\nN:\nTEL:19824101627\nEND:VCARD\nBEGIN:VENV\nBEGIN:VBODY\nDate:24.10.2007 14:41:28\nLily:微风吹来浪漫的气息\n每一首情歌忽然充满意义\n我就在此刻突然见到你\nEND:VBODY\nEND:VENV\nEND:VMSG";
		Matcher m = p.matcher(s);
		if (m.find()) {
			String text = m.group(0);
			System.out.println(text.substring(37, text.length() - 10));
		}
	}
}

⌨️ 快捷键说明

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