一个正则匹配的问题

Utopia 2014-10-14 02:03:42
Pattern pattern = Pattern.compile("1_12_._._3");
java.util.regex.Matcher matcher = pattern.matcher("1_12_0_102_3");
boolean find = matcher.find();
if(find) {
System.err.println("ok");
} else {
System.err.println("false");
}


这个代码会打印false,我想要的匹配是除了.的部分是任意字符,其他部分都要全部匹配,
这个正则该怎么写啊
...全文
158 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Norris_Zhang 2014-10-14
  • 打赏
  • 举报
回复
引用 6 楼 wlianghe00 的回复:
[quote=引用 4 楼 arkwrightzhn 的回复:] 1_12_.+_.+_3 这样,一个点(.)表示匹配一个任意字符,后面加一个+表示一个或多个。如果你确信第一个点的位置只有一个字符,第二个点处有三个字符可以写1_12_._.{3}_3,花括号里的数字表示前面的字符(.)重复3次。 另外,如果你确信一定匹配的是数字,可以用\d来代替点(.)更准确:
Pattern pattern = Pattern.compile("1_12_\\d{1}_\\d{3}_3");
引用 4 楼 arkwrightzhn 的回复:
1_12_.+_.+_3 这样,一个点(.)表示匹配一个任意字符,后面加一个+表示一个或多个。如果你确信第一个点的位置只有一个字符,第二个点处有三个字符可以写1_12_._.{3}_3,花括号里的数字表示前面的字符(.)重复3次。 另外,如果你确信一定匹配的是数字,可以用\d来代替点(.)更准确:
Pattern pattern = Pattern.compile("1_12_\\d{1}_\\d{3}_3");
那确认两个.处都只有一个字符 1_12_._._3这样写匹配不上啊[/quote]
Pattern pattern = Pattern.compile("1_12_._._3");
java.util.regex.Matcher matcher = pattern.matcher("1_12_0_1_3");
boolean find = matcher.find();
if(find) {
	System.err.println("ok");
} else {
	System.err.println("false");
}
这个程序我运行了一下,输出ok。
Utopia 2014-10-14
  • 打赏
  • 举报
回复
引用 4 楼 arkwrightzhn 的回复:
1_12_.+_.+_3 这样,一个点(.)表示匹配一个任意字符,后面加一个+表示一个或多个。如果你确信第一个点的位置只有一个字符,第二个点处有三个字符可以写1_12_._.{3}_3,花括号里的数字表示前面的字符(.)重复3次。 另外,如果你确信一定匹配的是数字,可以用\d来代替点(.)更准确:
Pattern pattern = Pattern.compile("1_12_\\d{1}_\\d{3}_3");
引用 4 楼 arkwrightzhn 的回复:
1_12_.+_.+_3 这样,一个点(.)表示匹配一个任意字符,后面加一个+表示一个或多个。如果你确信第一个点的位置只有一个字符,第二个点处有三个字符可以写1_12_._.{3}_3,花括号里的数字表示前面的字符(.)重复3次。 另外,如果你确信一定匹配的是数字,可以用\d来代替点(.)更准确:
Pattern pattern = Pattern.compile("1_12_\\d{1}_\\d{3}_3");
那确认两个.处都只有一个字符 1_12_._._3这样写匹配不上啊
shixitong 2014-10-14
  • 打赏
  • 举报
回复
1_12_([\s\S]*)_([\s\S]*)_3
Norris_Zhang 2014-10-14
  • 打赏
  • 举报
回复
1_12_.+_.+_3 这样,一个点(.)表示匹配一个任意字符,后面加一个+表示一个或多个。如果你确信第一个点的位置只有一个字符,第二个点处有三个字符可以写1_12_._.{3}_3,花括号里的数字表示前面的字符(.)重复3次。 另外,如果你确信一定匹配的是数字,可以用\d来代替点(.)更准确:
Pattern pattern = Pattern.compile("1_12_\\d{1}_\\d{3}_3");
skyWalker_ONLY 2014-10-14
  • 打赏
  • 举报
回复
ghostkngiht 2014-10-14
  • 打赏
  • 举报
回复
Pattern pattern = Pattern.compile("1_12_.+_.+_3");
tony4geek 2014-10-14
  • 打赏
  • 举报
回复
1_12_.*?_.*?_3

62,614

社区成员

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

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