java正则表达式

java正则表达式

基础知识

预定义的字符类

预定义字符类说明
.任何字符(可能匹配或不匹配行结束符)
\d一个数字:[0-9]
\D非数字[^0-9]
\s空格字符 [ \t\n\x0B\f\r]
\S非空白字符[\^\s]
\w一个字的字符[a-zA-Z_0-9]
\W非单词字符[^\w]

特殊意义的字符

特殊字符说明
^匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^
?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。
+匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
*匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
()标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)
$匹配输入字符串的结尾位置。要匹配 $ 字符本身,请使用 \$。

实例

获取”ArrayListTest”中的”ArrayList”

private void getStr4(){  
    String str="ArrayListTest";  
    System.out.println("从\""+str+"\""+"中提取Test前面的内容");  
    String regex = "(\\S*)(Test$)";  
    Pattern mPattern = Pattern.compile(regex);  
    Matcher mMatcher = mPattern.matcher(str);  
    while (mMatcher.find()) {  
    System.out.println(mMatcher.group(1));//得到ArrayList  
    System.out.println(mMatcher.group(2));//得到Test  
    }  
}

private void getStr3(){  
    String str="ArrayListTest";  
    System.out.println("从\""+str+"\""+"中提取Test前面的内容");  
    String regex = "(\\S*)Test$";  
    Pattern mPattern = Pattern.compile(regex);  
    Matcher mMatcher = mPattern.matcher(str);  
    while (mMatcher.find()) {  
    System.out.println(mMatcher.group(1));//得到ArrayList  
    }  
 }

判断字符串是否是double或float类型

/*
* 是否为浮点数?double或float类型。
* @param str 传入的字符串。
* @return 是浮点数返回true,否则返回false。
*/
public static boolean isDoubleOrFloat(String str) {
    //^[-\\+]?   以-或+开头,且-或+出现1次或0次
    // [.\\d]*   .和数字 出现零次或多次,且以.或数字结尾
    Pattern pattern = Pattern.compile("^[-\\+]?[.\\d]*$");
    return pattern.matcher(str).matches();
}

//System.out.println("00.8="+isDoubleOrFloat("00.8"));  也返回true
//System.out.println("-010.8="+isDoubleOrFloat("-010.8"));  也返回true
//System.out.println(".8="+isDoubleOrFloat(".8"));  也返回true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值