Java正则表达式入门到精通
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java 正则表达式快速入门儿到精通Java jdk提供大量的正则表达式工具,使您能够高效地创建、比较和修改字符串,以及迅速地分析大量文本和数据以搜索、移除和替换文本
下面是我学习时候的一些例子;每一个我都给出了注释;下面的代码可以直接
执行;
具体的细节可参照API文档和实际应用来进行详细学习和提高;
package xinxi.software.shinnexi.regexp;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegTest {
public static void main(String[] args) {
String str = "asdfaadfgx";
p(str.matches("..."));
p(str.replaceAll("\\d", "-"));
Pattern pattern = pile("[a-z]{3}");// 提前编译该正则表达式;返回该正则表达式的Pattern模式;
Matcher matcher = pattern.matcher(str);// 匹配的过程会产生多种结果,均保存在matcher中;
p(matcher.matches());// 返回是否与正则表达式匹配;
p(str.matches("[a-z]{10}"));
// . * + ?
System.out.println("hahhahahfadfadfadsfasdfadsf");
p("a".matches("."));// '.' Instead of a character;
p("aa".matches("aa"));// matches 'a''a';
p("aaaa".matches("a*"));//
p("aaaa".matches("a+"));// '+' one or more times ;
p("".matches("a*"));// '*' zero or more times;
p("aaaa".matches("a?"));// '?'exists once or zero times;
p("".matches("a?"));// zero lines matches;
p("a".matches("a?"));//
p("46546464645460".matches("\\d{3,100}"));// matches at least three
// times but not more than
// 100 times;
p("192.168.0.123".matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3} \\.\\d{1,3}"));//
p("152".matches("[0-2][0-9][0-9]"));// ip ;
//
///////////////////////////////////////////////////////////
/////////
// Range ;
p("a".matches("[abc]"));// 取abc三者之一的;
p("a".matches("[^abc]"));// 取abc之外的其他字符;
p("A".matches("[a-zA-Z]"));// 取a到z或者A-Z之间的一个字
符;
p("A".matches("[a-z]|[A-Z]"));// 同上;
p("B".matches("[a-z[A-Z]]"));// 同上;
p("R".matches("[A-Z&&[RFG]]"));// 取A-Z之间的并且是RFG之
一的一个字符;
//
///////////////////////////////////////////////////////////
///////////
// Specify character matches;
p(" \\n\\r\\t".matches("[\\s{4}]"));// 空白字符;
p(" ".matches("\\S"));// 非空白字符;
p("a_8".matches("\\w{3}"));// matches\\w= [a-zA-Z_0-9];
p("abc888*&%^".matches("[a-z]{1,3}\\d+[*!@#$%^&*]+"));
p("\\".matches("\\\\"));
//
///////////////////////////////////////////////////////////
///////////
// POSIX pattern in Unix;
p("".matches("\\p{Lower}"));// etc.;
//
///////////////////////////////////////////////////////////
///////////
p("hello sir".matches("^h.*"));
p("hello sir".matches(".*ir$"));
p("hello sir".matches("^h[a-z]{1,3}.*o\\b.*"));// "\\b" instead of
// boundary of word is
// include specify
// character;
p("hellosir".matches("^h[a-z]{1,3}.*o\\b.*"));
//
///////////////////////////////////////////////////////////
///////////
// verify white line ;
p(" \n".matches("^[\\s&&[^\\n]]*\\n$"));
p("aaa8888c".matches(".*\\d{4}."));
p("aaa 8888c".matches(".*\\b\\d{4}."));
p("aaa 8888c".matches(".*\\d{4}."));
p("aaa8888c".matches(".*\\b\\d{4}."));// result is