java正则表达式的问题
发布网友
发布时间:2022-04-23 17:15
我来回答
共2个回答
热心网友
时间:2022-04-23 18:44
1)("1234".matches("123"));
后面的123应该是只能是123的意思
2)^是开头的意思,.是任意一个字符,*是重复任意多次,
所以"1.*" 表示1后面跟0个或任意多个字符,
^1表示只能是1
大家一起学吧:
正则表达式30分钟入门教程
http://deerchao.net/tutorials/regex/regex.htm
热心网友
时间:2022-04-23 20:02
System.out.println("1234".matches("123"));
你的这种匹配没办法匹配字符串里是否有“123”,他只会去判断“1234”与“123”是不是匹配,当然不是。要判断是否有,得用find()方法,这就得用专门的类了(java.util.regex),给你代码。
import java.util.regex.*;
public class Baii {
public static void main(String[] args) {
Pattern p = null;
Matcher m = null;
String s = "1234";
p = Pattern.compile("123");
m = p.matcher(s);
System.out.println(m.find());
}
}
还有就^1.*9$ 和 1.*9 还是有区别的,但是对于你这种应用没区别
如果你想把字符串里符合表达式的内容找出来,就有点区别了。
^1.*9$ 表示整个字符串就是以1开头,9结尾
1.*9 表示整个字符串里包含1开头,9结尾的字串
你比如要从“sdad1434239dada”里找,第一种就找不出来,第二种就能找出
1434239来,差别真的挺小的,但是^&却是很重要的,建议去学一下java.util.regex这个类吧