正则--^$的用法总结

初学正则表达式,边学边记.下面是试验了^和$的用法:

package com.hf.regxTest.common;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 测试行起始符号和结束符号
* @author Administrator
*
*/
public class Test1 {

public static void test(String pString,String value){
System.out.println("正则式:"+pString);
System.out.println("值:"+value);
Pattern p=Pattern.compile(pString);
Matcher m = p.matcher(value);

while(m.find()){
int start=m.start();
int end=m.end();
System.out.println("start:"+start);
System.out.println("end:"+end);
String g = m.group();
System.out.println("group:"+g);

}
System.out.println("\n");
}
/**
* @param args
*/
public static void main(String[] args) {
/**
* 测试起始字符:^
*/
String pString="^w";
String value="w";
test(pString,value);
/**
* 测试结束字符:$
*/
pString="w$";
value="erw";
test(pString,value);

/**
* 测试:^$,这表明只匹配这个c.a.t这三个字符
*/
pString="^cat$";
value="cat";
test(pString,value);


/**
* 测试:^$,这表明匹配这个c.a.t这三个字符开头和结束的字符串,
* 中间可以存在其他字符
*/
pString="^cat(.*)cat$";
value="catwwcat";
test(pString,value);



/**
* 测试:^,这表明匹配行的开头,因为任何字符串都有开头,所以均会
* 匹配到,没有意义
*/
pString="^";
value="dd";
test(pString,value);


/**
* 测试:^$,这表明匹配行的开头,接着就是行结尾。所以匹配的
* 应该是空行,即使是\n,tab等空白字符也匹配不到

*/
pString="^$";
value="";
test(pString,value);

}

}

你可能感兴趣的:(C++,c,正则表达式,C#)