关于string类里matches方法无法正确识别匹配

无锡糖醋排骨 2016-12-21 03:49:29
matches识别不了最简单的正则表达式比如
string value = “12345678”
value.matches(“123”)居然返回的是个false,这是什么情况?还是说matches里的字符串要进行特殊处理,求解答
...全文
745 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
matches()是匹配整个字符串时才会返回true,如果只是包含部分的话,你可以用value.contains("123")。如果你一定要用正则表达式的话, value.matches(“123.*”); value.matches(“123\\d*”); value.matches(“123[0-9]*”); 上面这三种写法都可以。 其中value.matches(“123\\d*”);和value.matches(“123[0-9]*”);等价,字符串只能都是数字;value.matches(“123.*”);这种写法123后面可以是任何字符
爱睡觉的阿狸 2016-12-22
  • 打赏
  • 举报
回复
一楼正解。。。
bcsflilong 2016-12-22
  • 打赏
  • 举报
回复
这个里面应该是正则表达式 如果你想判断 一个字符串里是否含有某个特顶字符 你可以用indexof
自由自在_Yu 2016-12-22
  • 打赏
  • 举报
回复
public static void main(String[] args) {
		String str = "12345678";
		String regex ="123";
		Pattern p = Pattern.compile(regex);
		Matcher m = p.matcher(str);
		System.out.println(m.find());
		
		String str2 = "12345678";
		String regex2 ="12345678";
		Pattern p2 = Pattern.compile(regex2);
		Matcher m2 = p2.matcher(str2);
		System.out.println(m2.matches());//全匹配
	}
自由自在_Yu 2016-12-22
  • 打赏
  • 举报
回复
public static void main(String[] args) { String str = "12345678"; String regex ="123"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(str); System.out.println(m.find()); }
解开者 2016-12-22
  • 打赏
  • 举报
回复
引用 2 楼 nissinzheng 的回复:
[quote=引用 1 楼 windowsoahil 的回复:] matches是全量匹配 可以改成123.*,或者如果需要分组匹配,需要用到Pattern类
能详细解释下么[/quote] 全量匹配也就是字符串本身要能完整匹配给出的正则表达式 从String对象上调用正则表达式相关方法只是简单用法,更多关于正则表达式的用法参考Pattern类的API
  • 打赏
  • 举报
回复
全量匹配,8L说的可以
无锡糖醋排骨 2016-12-21
  • 打赏
  • 举报
回复
引用 1 楼 windowsoahil 的回复:
matches是全量匹配 可以改成123.*,或者如果需要分组匹配,需要用到Pattern类
能详细解释下么
解开者 2016-12-21
  • 打赏
  • 举报
回复
matches是全量匹配 可以改成123.*,或者如果需要分组匹配,需要用到Pattern类

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧