java 正则表达式 捕获组--2

timeriver_wang 2009-09-08 01:43:59
我知道这种匹配:
String reg="\\d{4}(-|/)\\d{2}\\1\\d{2}";
String str="2009-09-08";
String str2="2009/09/08";
String str3="2009/09-08";
System.out.println(str.matches(reg));
System.out.println(str2.matches(reg));
System.out.println(str3.matches(reg));
结果:
true
true
false

我想知道可不可以这样匹配:
aa3AA
bb3BB
就是aa,AA一起出现,bbBB一起出现;
但不能匹配aa3BB
...全文
113 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
timeriver_wang 2009-09-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 longq121 的回复:]
楼主想要实现的应该不可能,除非你能够将前面的字符用${element}来代替,否则无法推断后面的验证。
[/Quote]

你的回答最满意了
timeriver_wang 2009-09-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 longq121 的回复:]
楼主想要实现的应该不可能,除非你能够将前面的字符用${element}来代替,否则无法推断后面的验证。
[/Quote]

看来,我表达能力有问题啊,这么多人,就你一个了解我的意图
汗!!!
closewbq 2009-09-08
  • 打赏
  • 举报
回复

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
String[] array = { "aa3AA", "aaAA", "bb3BB", "bbBB" };
Pattern pattern = Pattern.compile("(a{2}A{2})|(b{2}B{2})");
Matcher matcher = null;
for (String str : array) {
matcher = pattern.matcher(str);
if (matcher.find())
System.out.println("true");
else
System.out.println("false");
}
}
}


貌似有点恶心!
longq121 2009-09-08
  • 打赏
  • 举报
回复
楼主想要实现的应该不可能,除非你能够将前面的字符用${element}来代替,否则无法推断后面的验证。
lifeiscool 2009-09-08
  • 打赏
  • 举报
回复
关注。。
fuyou001 2009-09-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 wnjok 的回复:]
我知道这种匹配:
String reg="\\d{4}(-|/)\\d{2}\\1\\d{2}";
String str="2009-09-08";
String str2="2009/09/08";
String str3="2009/09-08";
System.out.println(str.matches(reg));
System.out.println(str2.matches(reg));
System.out.println(str3.matches(reg));
结果:
true
true
false



我想知道可不可以这样匹配:
aa3AA
bb3BB
就是aa,AA一起出现,bbBB一起出现;
但不能匹配aa3BB
[/Quote]
\d{4}表示4个数字
(-|/)表示-或/
\d{2}又二个数字
\1表示引用前面的第一个 括号却(-|\)
\d{2}又二个数字
所以整个正则是:4个数字|(或-)2个数字|(或-)2个数字
loveofmylife 2009-09-08
  • 打赏
  • 举报
回复
LZ什么意思啊,没看明白

62,621

社区成员

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

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